ActiveMQConnectionFactory blocks in case of ssl
-----------------------------------------------

                 Key: AMQ-3759
                 URL: https://issues.apache.org/jira/browse/AMQ-3759
             Project: ActiveMQ
          Issue Type: Bug
          Components: JMS client
    Affects Versions: 5.5.1, 5.4.3
            Reporter: Krzysztof Olszewski


When ActiveMQConnectionFactory is used to create connection to broker using SSL 
the thread becomes blocked (waiting infinite on SocketInputStream#socketRead0).

Stacktrace:
"ActiveMQ Transport: ssl://localhost/127.0.0.1:9099" prio=6 
tid=0x0000000006105000 nid=0x463c waiting for monitor entry [0x0000000008a2f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown 
Source)
        - waiting to lock <0x000000078219d8f8> (a java.lang.Object)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown 
Source)
        at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
        - locked <0x000000078219d9d0> (a 
com.sun.net.ssl.internal.ssl.AppInputStream)
        at 
org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
        at 
org.apache.activemq.transport.tcp.TcpTransport$2.fill(TcpTransport.java:576)
        at 
org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
        at 
org.apache.activemq.transport.tcp.TcpTransport$2.read(TcpTransport.java:561)
        at java.io.DataInputStream.readInt(Unknown Source)
        at 
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
        at 
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:227)
        at 
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:219)
        at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
        at java.lang.Thread.run(Unknown Source)

"Thread-4" prio=6 tid=0x0000000006103800 nid=0x2bb8 runnable 
[0x000000000872e000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at com.sun.net.ssl.internal.ssl.InputRecord.readFully(Unknown Source)
        at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
        - locked <0x00000007821b14c8> (a java.lang.Object)
        at 
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown 
Source)
        - locked <0x000000078219d8f8> (a java.lang.Object)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown 
Source)
        at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
        - locked <0x00000007821a2a60> (a 
com.sun.net.ssl.internal.ssl.AppOutputStream)
        at 
org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:115)
        at java.io.DataOutputStream.flush(Unknown Source)
        at 
org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:182)
        at 
org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:254)
        - locked <0x00000007821a2898> (a 
java.util.concurrent.atomic.AtomicBoolean)
        at 
org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:168)
        at 
org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:84)
        at 
org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:74)
        at 
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
        at 
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
        at 
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:266)
        at 
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
        at 
org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
        at 
org.apache.activemq.broker.test.SslDeadlockTest.sendMsg(SslDeadlockTest.java:53)
        at 
org.apache.activemq.broker.test.SslDeadlockTest.testFail(SslDeadlockTest.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at 
org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to