diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-03-15 18:24:39 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-03-15 18:24:39 +0000 |
commit | dbd42a5175058017eefa4622b1babd5bc92d240e (patch) | |
tree | e96e8a28d0bfe21cad7b8ddeb9ea83a8c7a558da /java/src/IceSSL/SslTransceiver.java | |
parent | Uncommented call to shudownOutput in shutdownReadWrite (diff) | |
download | ice-dbd42a5175058017eefa4622b1babd5bc92d240e.tar.bz2 ice-dbd42a5175058017eefa4622b1babd5bc92d240e.tar.xz ice-dbd42a5175058017eefa4622b1babd5bc92d240e.zip |
Fixed SsLtransceiver::write to throw ConnectionLostException
Diffstat (limited to 'java/src/IceSSL/SslTransceiver.java')
-rw-r--r-- | java/src/IceSSL/SslTransceiver.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/java/src/IceSSL/SslTransceiver.java b/java/src/IceSSL/SslTransceiver.java index 18623cd8a3b..186072b3a84 100644 --- a/java/src/IceSSL/SslTransceiver.java +++ b/java/src/IceSSL/SslTransceiver.java @@ -150,7 +150,7 @@ final class SslTransceiver implements IceInternal.Transceiver throw se; } - while(buf.hasRemaining()) + while(buf.hasRemaining() && !_shutdown) { int pos = buf.position(); try @@ -179,11 +179,23 @@ final class SslTransceiver implements IceInternal.Transceiver } catch(java.io.IOException ex) { + if(IceInternal.Network.connectionLost(ex)) + { + Ice.ConnectionLostException se = new Ice.ConnectionLostException(); + se.initCause(ex); + throw se; + } + Ice.SocketException se = new Ice.SocketException(); se.initCause(ex); throw se; } } + + if(_shutdown && buf.hasRemaining()) + { + throw new Ice.ConnectionLostException(); + } } public void |