[ 
https://issues.apache.org/jira/browse/QPID-1547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Arnaud Simon reassigned QPID-1547:
----------------------------------

    Assignee: Arnaud Simon

> Client always displays exception on Windows
> -------------------------------------------
>
>                 Key: QPID-1547
>                 URL: https://issues.apache.org/jira/browse/QPID-1547
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M4
>            Reporter: Arnaud Simon
>            Assignee: Arnaud Simon
>
> A java client running on Windows always displays the following exception when 
> closing a JMS connection:
> org.apache.qpid.AMQException: socket closed
>       at 
> org.apache.qpid.client.AMQConnectionDelegate_0_10.closeConnection(AMQConnectionDelegate_0_10.java:188)
>       at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:926)
>       at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:893)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:880)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:873)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:868)
>       at 
> org.apache.qpid.example.jmsexample.direct.Producer.runTest(Producer.java:126)
>       at 
> org.apache.qpid.example.jmsexample.direct.Producer.main(Producer.java:63)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
> Caused by: org.apache.qpid.transport.ConnectionException: socket closed
>       at org.apache.qpid.transport.Connection.close(Connection.java:487)
>       at org.apache.qpid.transport.Connection.close(Connection.java:458)
>       at 
> org.apache.qpid.client.AMQConnectionDelegate_0_10.closeConnection(AMQConnectionDelegate_0_10.java:184)
>       ... 12 more
> Caused by: org.apache.qpid.transport.ConnectionException: socket closed
>       at org.apache.qpid.transport.Connection.exception(Connection.java:398)
>       at 
> org.apache.qpid.transport.network.Assembler.exception(Assembler.java:108)
>       at 
> org.apache.qpid.transport.network.InputHandler.exception(InputHandler.java:196)
>       at 
> org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:136)
> 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:111)
> Producer: Caught an Exception: javax.jms.JMSException: Error closing 
> connection: org.apache.qpid.AMQException: socket closed
> javax.jms.JMSException: Error closing connection: 
> org.apache.qpid.AMQException: socket closed
>       at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:942)
>       at org.apache.qpid.client.AMQConnection.doClose(AMQConnection.java:893)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:880)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:873)
>       at org.apache.qpid.client.AMQConnection.close(AMQConnection.java:868)
>       at 
> org.apache.qpid.example.jmsexample.direct.Producer.runTest(Producer.java:126)
>       at 
> org.apache.qpid.example.jmsexample.direct.Producer.main(Producer.java:63)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>  
> This exception is displayed on windows because the socket is closed (see 
> qpid-1251 for more details). I would suggest the following fix:
> add the following catch clause to method run() of class 
> org.apache.qpid.transport.network.io.IoReceiver
>       catch (SocketException se)
>             {
>                 if( ! (se.getMessage().equalsIgnoreCase("socket closed") && 
> closed.get()))
>                 {
>                     receiver.exception(se);
>                 }
>             }
> This would swallow socket closed exception when the connection has previously 
> been closed 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to