diff options
Diffstat (limited to 'java/src/Ice/Application.java')
-rw-r--r-- | java/src/Ice/Application.java | 13 |
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) { |