INT-2908 Fix JMS Tests Concurrency Issue

Fix concurrency issues with timeouts field.

JIRA: https://jira.springsource.org/browse/INT-2908
This commit is contained in:
Artem Bilan
2013-01-30 12:18:08 +02:00
committed by Gary Russell
parent e9b47ff024
commit f9f2d65477

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -33,6 +33,7 @@ import org.springframework.integration.message.GenericMessage;
/**
* @author Oleg Zhurakousky
* @author Gary Russell
* @author Artem Bilan
*/
public class PipelineNamedReplyQueuesJmsTests {
@@ -40,8 +41,6 @@ public class PipelineNamedReplyQueuesJmsTests {
int requests = 50;
int timeouts;
/**
* jms:out(reply-destination-name="pipeline01-01") -> jms:in -> randomTimeoutProcess ->
* jms:out -> jms:in
@@ -70,8 +69,8 @@ public class PipelineNamedReplyQueuesJmsTests {
*/
@Test
public void testPipeline2a() throws Exception{
this.test("pipeline-named-queue-02a.xml");
assertEquals(0, this.timeouts);
int timeouts = this.test("pipeline-named-queue-02a.xml");
assertEquals(0, timeouts);
}
/**
@@ -94,8 +93,8 @@ public class PipelineNamedReplyQueuesJmsTests {
*/
@Test
public void testPipeline3a() throws Exception{
this.test("pipeline-named-queue-03a.xml", 20000);
assertEquals(0, this.timeouts);
int timeouts = this.test("pipeline-named-queue-03a.xml", 20000);
assertEquals(0, timeouts);
}
/**
@@ -134,12 +133,11 @@ public class PipelineNamedReplyQueuesJmsTests {
this.test("pipeline-named-queue-07.xml");
}
public void test(String contextConfig) throws Exception {
test(contextConfig, 0);
public int test(String contextConfig) throws Exception {
return test(contextConfig, 0);
}
public void test(String contextConfig, final int offset) throws Exception {
this.timeouts = 0;
public int test(String contextConfig, final int offset) throws Exception {
ActiveMqTestUtils.prepare();
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(contextConfig, this.getClass());
final AtomicInteger successCounter = new AtomicInteger();
@@ -173,7 +171,7 @@ public class PipelineNamedReplyQueuesJmsTests {
assertTrue(successCounter.get() > 10);
assertEquals(0, failureCounter.get());
assertEquals(requests, successCounter.get() + timeoutCounter.get());
this.timeouts = timeoutCounter.get();
return timeoutCounter.get();
}
finally {
System.out.println(contextConfig);