-
Bug
-
Resolution: Fixed
-
P3
-
1.0
-
None
-
1.0
-
sparc
-
solaris_2.5.1
-
Verified
I've got a server supporting TLS. I have a TLS client which connects to
the server, performs an operation and calls close.
The client gets an exception in the call to the close() method saying that
the close message could not be sent. The fact is that the server got the
close message but apparently closed the connection before acknowledging
the close message. This seems to be a synchronization problem as the
server should acknowledge the close message and then terminate the
connection.
See the traces below for more detailed information.
------------
Client trace
------------
Sep 22, 2003 3:51:05 PM GenericConnector close
FINER: [javax.management.remote.jmxmp.JMXMPConnector: JMXServiceURL=service:jmx:jmxmp://localhost:2010] closing.
Sep 22, 2003 3:51:05 PM GenericConnector close
FINER: [javax.management.remote.jmxmp.JMXMPConnector: JMXServiceURL=service:jmx:jmxmp://localhost:2010] failed to send close message: java.net.SocketException: Connection closed by remote host
Sep 22, 2003 3:51:05 PM GenericConnector close
FINEST: java.net.SocketException: Connection closed by remote host
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1585)
at java.io.ObjectOutputStream.flush(ObjectOutputStream.java:639)
at com.sun.jmx.remote.socket.SocketConnection.writeMessage(SocketConnection.java:227)
at com.sun.jmx.remote.generic.SynchroMessageConnectionImpl.sendOneWay(SynchroMessageConnectionImpl.java:155)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:269)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:240)
at SecureClient.main(SecureClient.java:135)
Sep 22, 2003 3:51:05 PM ClientIntermediary terminate
FINER: Terminated.
Sep 22, 2003 3:51:05 PM ClientIntermediary GenericClientNotifForwarder-removeListenerForMBeanRemovedNotif
FINER: Remove the listener used to receive UNREGISTRATION_NOTIFICATION.
SecureClient got exception!
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1585)
at java.io.ObjectOutputStream.flush(ObjectOutputStream.java:639)
at com.sun.jmx.remote.socket.SocketConnection.writeMessage(SocketConnection.java:227)
at com.sun.jmx.remote.generic.SynchroMessageConnectionImpl.sendOneWay(SynchroMessageConnectionImpl.java:155)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:269)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:240)
at SecureClient.main(SecureClient.java:135)
------------
Server trace
------------
Sep 22, 2003 3:51:05 PM ServerIntermediary RequestHandler-execute
FINER: Execute the request: javax.management.remote.message.CloseMessage@1c5f743
Sep 22, 2003 3:51:05 PM ServerIntermediary RequestHandler-execute
FINER: Receive a CloseMessage.
Sep 22, 2003 3:51:05 PM ServerIntermediary terminate
FINER: Terminating....
Sep 22, 2003 3:51:05 PM ServerIntermediary terminate
FINER: Terminated.
the server, performs an operation and calls close.
The client gets an exception in the call to the close() method saying that
the close message could not be sent. The fact is that the server got the
close message but apparently closed the connection before acknowledging
the close message. This seems to be a synchronization problem as the
server should acknowledge the close message and then terminate the
connection.
See the traces below for more detailed information.
------------
Client trace
------------
Sep 22, 2003 3:51:05 PM GenericConnector close
FINER: [javax.management.remote.jmxmp.JMXMPConnector: JMXServiceURL=service:jmx:jmxmp://localhost:2010] closing.
Sep 22, 2003 3:51:05 PM GenericConnector close
FINER: [javax.management.remote.jmxmp.JMXMPConnector: JMXServiceURL=service:jmx:jmxmp://localhost:2010] failed to send close message: java.net.SocketException: Connection closed by remote host
Sep 22, 2003 3:51:05 PM GenericConnector close
FINEST: java.net.SocketException: Connection closed by remote host
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1585)
at java.io.ObjectOutputStream.flush(ObjectOutputStream.java:639)
at com.sun.jmx.remote.socket.SocketConnection.writeMessage(SocketConnection.java:227)
at com.sun.jmx.remote.generic.SynchroMessageConnectionImpl.sendOneWay(SynchroMessageConnectionImpl.java:155)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:269)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:240)
at SecureClient.main(SecureClient.java:135)
Sep 22, 2003 3:51:05 PM ClientIntermediary terminate
FINER: Terminated.
Sep 22, 2003 3:51:05 PM ClientIntermediary GenericClientNotifForwarder-removeListenerForMBeanRemovedNotif
FINER: Remove the listener used to receive UNREGISTRATION_NOTIFICATION.
SecureClient got exception!
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA6275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
at java.io.ObjectOutputStream$BlockDataOutputStream.flush(ObjectOutputStream.java:1585)
at java.io.ObjectOutputStream.flush(ObjectOutputStream.java:639)
at com.sun.jmx.remote.socket.SocketConnection.writeMessage(SocketConnection.java:227)
at com.sun.jmx.remote.generic.SynchroMessageConnectionImpl.sendOneWay(SynchroMessageConnectionImpl.java:155)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:269)
at javax.management.remote.generic.GenericConnector.close(GenericConnector.java:240)
at SecureClient.main(SecureClient.java:135)
------------
Server trace
------------
Sep 22, 2003 3:51:05 PM ServerIntermediary RequestHandler-execute
FINER: Execute the request: javax.management.remote.message.CloseMessage@1c5f743
Sep 22, 2003 3:51:05 PM ServerIntermediary RequestHandler-execute
FINER: Receive a CloseMessage.
Sep 22, 2003 3:51:05 PM ServerIntermediary terminate
FINER: Terminating....
Sep 22, 2003 3:51:05 PM ServerIntermediary terminate
FINER: Terminated.