jeanouii opened a new pull request, #1564:
URL: https://github.com/apache/activemq/pull/1564

   Possible bug revealed by PooledConnectionSecurityExceptionTest on faster 
environments (Github Actions nodes for example). 
   
   The PR fixes the test itself leaking connections during the waitFor 
condition.
   But it also fixes the connection pool itself because when 
reconnectOnException is used, commons-pool will close the underlying connection 
in order to reconnect. I've updated the validateObject() to consider the 
underlying connection state in order to decide if a connection is valid or not.
   
   I'm not quite sure my hypothesis is correct or not and therefore if the fix 
is relevant.
   
   ```
   [INFO] Running
     org.apache.activemq.jms.pool.PooledConnectionSecurityExceptionTest
     Error:  Tests run: 8, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 
0.173 s <<< FAILURE! -- in 
org.apache.activemq.jms.pool.PooledConnectionSecurityExceptionTest
     Error:  
org.apache.activemq.jms.pool.PooledConnectionSecurityExceptionTest.testFailureGetsNewConnectionOnRetryLooped
 -- Time elapsed: 0.056 s <<< ERROR!
     jakarta.jms.JMSException: Disposed due to prior exception
           at 
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:67)
           at 
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1478)
           at 
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1561)
           at 
org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:569)
           at 
org.apache.activemq.jms.pool.ConnectionPool.start(ConnectionPool.java:125)
           at 
org.apache.activemq.jms.pool.PooledConnection.start(PooledConnection.java:95)
           at 
org.apache.activemq.jms.pool.PooledConnectionSecurityExceptionTest.testFailureGetsNewConnectionOnRetry(PooledConnectionSecurityExceptionTest.java:127)
           at 
org.apache.activemq.jms.pool.PooledConnectionSecurityExceptionTest.testFailureGetsNewConnectionOnRetryLooped(PooledConnectionSecurityExceptionTest.java:116)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
           at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.base/java.lang.reflect.Method.invoke(Method.java:569)
           at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
           at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
           at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
           at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
           at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
           at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
           at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
           at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
           at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
           at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
           at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
           at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
           at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
           at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
           at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
           at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
           at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
           at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
           at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
           at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
           at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
           at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
           at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
           at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
           at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
           at 
org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
           at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
     Caused by: org.apache.activemq.transport.TransportDisposedIOException: 
Disposed due to prior exception
           at 
org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:125)
           at 
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114)
           at 
org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114)
           at 
org.apache.activemq.transport.WireFormatNegotiator.onException(WireFormatNegotiator.java:173)
           at 
org.apache.activemq.transport.AbstractInactivityMonitor.onException(AbstractInactivityMonitor.java:349)
           at 
org.apache.activemq.transport.TransportSupport.onException(TransportSupport.java:96)
           at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:220)
           at java.base/java.lang.Thread.run(Thread.java:840)
     Caused by: java.io.EOFException
           at 
java.base/java.io.DataInputStream.readInt(DataInputStream.java:386)
           at 
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:289)
           at 
org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:241)
           at 
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)
           at 
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:216)
           ... 1 more
   
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to