You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rafael H. Schloming (JIRA)" <qp...@incubator.apache.org> on 2008/07/31 17:58:31 UTC
[jira] Commented: (QPID-1207) 0-10 client throws runtime exceptions
when talking to a 0-9 broker
[ https://issues.apache.org/jira/browse/QPID-1207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12618734#action_12618734 ]
Rafael H. Schloming commented on QPID-1207:
-------------------------------------------
I am working on fix for this now. The issue is due to an annoying artifact of the java socket API. If you do a socket.close() from one thread while another thread is reading from the input stream, the other thread does not in fact get a (-1) for EOF as I expected, but rather throws an exception. You need to use shutdownInput() and wait for the other thread to exit before calling socket.close().
> 0-10 client throws runtime exceptions when talking to a 0-9 broker
> ------------------------------------------------------------------
>
> Key: QPID-1207
> URL: https://issues.apache.org/jira/browse/QPID-1207
> Project: Qpid
> Issue Type: Bug
> Components: Java Client
> Affects Versions: M3
> Reporter: Aidan Skinner
> Assignee: Rafael H. Schloming
> Priority: Critical
> Fix For: M3
>
>
> The 0-10 Client transport layer does not signal that the socket should be closed anthe IoRecieve thread should terminate. It is forcibly killed with an IoException when the socket is shutdown.
> Exception in thread "IoReceive - localhost/127.0.0.1:5672" java.lang.RuntimeException: connection closed
> at org.apache.qpid.nclient.Client$1.exception(Client.java:96)
> at org.apache.qpid.transport.Connection.exception(Connection.java:148)
> at org.apache.qpid.transport.network.Assembler.exception(Assembler.java:112)
> at org.apache.qpid.transport.network.InputHandler.exception(InputHandler.java:196)
> at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:87)
> Caused by: org.apache.qpid.transport.TransportException: error in read thread
> ... 1 more
> Caused by: java.net.SocketException: Socket closed
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.read(SocketInputStream.java:129)
> at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:70)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.