summaryrefslogtreecommitdiff
path: root/java/src/Ice/Application.java
diff options
context:
space:
mode:
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)
{