summaryrefslogtreecommitdiff
path: root/java/src/IceSSL/SslTransceiver.java
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-03-15 18:24:39 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-03-15 18:24:39 +0000
commitdbd42a5175058017eefa4622b1babd5bc92d240e (patch)
treee96e8a28d0bfe21cad7b8ddeb9ea83a8c7a558da /java/src/IceSSL/SslTransceiver.java
parentUncommented call to shudownOutput in shutdownReadWrite (diff)
downloadice-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.java14
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