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

Erich Duda resolved ARTEMIS-538.
--------------------------------
       Resolution: Fixed
    Fix Version/s: 1.3.0

> [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
>             Fix For: 1.3.0
>
>
> {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)

Reply via email to