summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Network.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2005-01-06 18:39:21 +0000
committerMark Spruiell <mes@zeroc.com>2005-01-06 18:39:21 +0000
commitece9ec6de2781a95677df0558fb289b8c6c22318 (patch)
tree5c6e9d445b50855e0451b4349eed272897f48d50 /java/src/IceInternal/Network.java
parentfix for SocketException (diff)
downloadice-ece9ec6de2781a95677df0558fb289b8c6c22318.tar.bz2
ice-ece9ec6de2781a95677df0558fb289b8c6c22318.tar.xz
ice-ece9ec6de2781a95677df0558fb289b8c6c22318.zip
fix for interrupted system calls
Diffstat (limited to 'java/src/IceInternal/Network.java')
-rw-r--r--java/src/IceInternal/Network.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/java/src/IceInternal/Network.java b/java/src/IceInternal/Network.java
index e986ff71e95..a151bb2144a 100644
--- a/java/src/IceInternal/Network.java
+++ b/java/src/IceInternal/Network.java
@@ -360,12 +360,12 @@ public final class Network
break;
}
- catch(java.io.InterruptedIOException ex)
- {
- continue;
- }
catch(java.io.IOException ex)
{
+ if(interrupted(ex))
+ {
+ continue;
+ }
Ice.SocketException se = new Ice.SocketException();
se.initCause(ex);
throw se;
@@ -385,12 +385,12 @@ public final class Network
}
}
}
- catch(java.io.InterruptedIOException ex)
- {
- continue;
- }
catch(java.io.IOException ex)
{
+ if(interrupted(ex))
+ {
+ continue;
+ }
Ice.SocketException se = new Ice.SocketException();
se.initCause(ex);
throw se;
@@ -753,4 +753,11 @@ public final class Network
s.append(addr.getPort());
return s.toString();
}
+
+ public static boolean
+ interrupted(java.io.IOException ex)
+ {
+ return ex instanceof java.io.InterruptedIOException ||
+ ex.getMessage().indexOf("Interrupted system call") >= 0;
+ }
}