summaryrefslogtreecommitdiff
path: root/java/ssl/jdk1.4/IceSSL/TransceiverI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/ssl/jdk1.4/IceSSL/TransceiverI.java')
-rw-r--r--java/ssl/jdk1.4/IceSSL/TransceiverI.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/java/ssl/jdk1.4/IceSSL/TransceiverI.java b/java/ssl/jdk1.4/IceSSL/TransceiverI.java
index dfd207532cd..b72716942ba 100644
--- a/java/ssl/jdk1.4/IceSSL/TransceiverI.java
+++ b/java/ssl/jdk1.4/IceSSL/TransceiverI.java
@@ -116,6 +116,7 @@ final class TransceiverI implements IceInternal.Transceiver
public void
write(IceInternal.BasicStream stream, int timeout)
+ throws IceInternal.LocalExceptionWrapper
{
java.nio.ByteBuffer buf = stream.prepareWrite();
@@ -181,9 +182,15 @@ final class TransceiverI implements IceInternal.Transceiver
{
if(IceInternal.Network.connectionLost(ex))
{
+ //
+ // Java's SSL implementation might have successfully sent the
+ // packet but then detected loss of connection and raised an
+ // exception. As a result, we cannot be sure that it is safe
+ // to retry in this situation, so we raise LocalExceptionWrapper.
+ //
Ice.ConnectionLostException se = new Ice.ConnectionLostException();
se.initCause(ex);
- throw se;
+ throw new IceInternal.LocalExceptionWrapper(se, false);
}
Ice.SocketException se = new Ice.SocketException();