[ 
https://issues.apache.org/jira/browse/AMQ-3759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13224451#comment-13224451
 ] 

Timothy Bish commented on AMQ-3759:
-----------------------------------

The current test fails because the ActiveMQConnectionFactory is waiting for a 
response on its socket but the broker is in an loop on onAccept receiving 
SSLExceptions because the broker has no SSL configuration.  The reason the 
method using ActiveMQSSLConnectionFactory fails is because it can locally 
detect that its not configured and fail fast.  If you configured a timeout on 
the ssl transport so that the socket connect call failed after a delay it would 
then work similar to the other test case.
                
> 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.4.3, 5.5.1
>            Reporter: Krzysztof Olszewski
>         Attachments: ConnectionFactoryTest.java, 
> ConnectionFactoryWithSslContextTest.java
>
>
> 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