summaryrefslogtreecommitdiff
path: root/java/src/Ice/Application.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2014-10-03 15:34:33 -0230
committerMatthew Newhook <matthew@zeroc.com>2014-10-03 15:34:33 -0230
commitb530efc5ccfb6c2b6e096933431f1f1827851996 (patch)
tree32436ff41466bb7339d250477cda3a4ec7708075 /java/src/Ice/Application.java
parentICE-5613 - Systemd service support (diff)
downloadice-b530efc5ccfb6c2b6e096933431f1f1827851996.tar.bz2
ice-b530efc5ccfb6c2b6e096933431f1f1827851996.tar.xz
ice-b530efc5ccfb6c2b6e096933431f1f1827851996.zip
- Java Application now catches OperationInterruptedException and
retries. - Removed the InProgress state from Instance, simplified and corrected the destroy logic.
Diffstat (limited to 'java/src/Ice/Application.java')
-rw-r--r--java/src/Ice/Application.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/java/src/Ice/Application.java b/java/src/Ice/Application.java
index 4190f39043e..ab9a72f272d 100644
--- a/java/src/Ice/Application.java
+++ b/java/src/Ice/Application.java
@@ -276,7 +276,18 @@ public abstract class Application
{
try
{
- _communicator.destroy();
+ try
+ {
+ _communicator.destroy();
+ }
+ catch(Ice.OperationInterruptedException ex)
+ {
+ Util.getProcessLogger().error(IceInternal.Ex.toString(ex));
+ // Retry communicator destroy in case of an operation
+ // interrupt exception, but don't do so in a loop
+ // otherwise it could go on forever.
+ _communicator.destroy();
+ }
}
catch(LocalException ex)
{