You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Erich Duda (JIRA)" <ji...@apache.org> on 2016/05/25 13:57:12 UTC
[jira] [Resolved] (ARTEMIS-538) [Artemis Testsuite]
JMSFailoverListenerTest#testManualFailover fails
[ 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)