Erich Duda created ARTEMIS-538:
----------------------------------
Summary: [Artemis Testsuite]
JMSFailoverListenerTest#testManualFailover fails
Key: ARTEMIS-538
URL: https://issues.apache.org/jira/browse/ARTEMIS-538
Project: ActiveMQ Artemis
Issue Type: Bug
Affects Versions: 1.2.0
Reporter: Erich Duda
{code}
java.lang.AssertionError: expected:<FAILURE_DETECTED> but was:<FAILOVER_FAILED>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:144)
at
org.apache.activemq.artemis.tests.integration.jms.cluster.JMSFailoverListenerTest.testManualFailover(JMSFailoverListenerTest.java:228)
{code}
I found out that problem is in \[1\]. When events occur consecutive, ordering
of their executions is not guaranteed.
\[1\]
{code:title=ActiveMQConnection.java}
private static class FailoverEventListenerImpl implements FailoverEventListener
{
private final WeakReference<ActiveMQConnection> connectionRef;
FailoverEventListenerImpl(final ActiveMQConnection connection) {
connectionRef = new WeakReference<ActiveMQConnection>(connection);
}
@Override
public void failoverEvent(final FailoverEventType eventType) {
ActiveMQConnection conn = connectionRef.get();
if (conn != null) {
try {
final FailoverEventListener failoverListener =
conn.getFailoverListener();
if (failoverListener != null) {
new Thread(new Runnable() {
public void run() {
failoverListener.failoverEvent(eventType);
}
}).start();
}
}
catch (JMSException e) {
if (!conn.closed) {
ActiveMQJMSClientLogger.LOGGER.errorCallingFailoverListener(e);
}
}
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)