diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/ThreadPool.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java index 2e1c076b6a2..91017154b65 100644 --- a/java/src/IceInternal/ThreadPool.java +++ b/java/src/IceInternal/ThreadPool.java @@ -419,6 +419,17 @@ catch (RuntimeException ex) } catch (java.io.IOException ex) { + // + // Pressing Ctrl-C causes select() to raise an + // IOException, which seems like a JDK bug. We trap + // for that special case here and ignore it. + // Hopefully we're not masking something important! + // + if (ex.getMessage().indexOf("Interrupted system call") != -1) + { + continue repeatSelect; + } + Ice.SocketException se = new Ice.SocketException(); se.initCause(ex); throw se; |