diff options
author | Mark Spruiell <mes@zeroc.com> | 2005-01-06 18:39:21 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2005-01-06 18:39:21 +0000 |
commit | ece9ec6de2781a95677df0558fb289b8c6c22318 (patch) | |
tree | 5c6e9d445b50855e0451b4349eed272897f48d50 /java/src/IceInternal/Network.java | |
parent | fix for SocketException (diff) | |
download | ice-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.java | 23 |
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; + } } |