You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2024/04/26 08:44:54 UTC
(camel) 02/02: (chores) camel-core: fix non-atomic operations on volatile fields
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 5c03209c5e3314a059f19366869988212286c004
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Apr 23 13:13:22 2024 +0200
(chores) camel-core: fix non-atomic operations on volatile fields
---
.../component/file/FileBeginFailureOneTimeTest.java | 9 +++++----
.../file/FileConsumerCustomSchedulerTest.java | 7 ++++---
.../apache/camel/impl/EndpointShutdownOnceTest.java | 7 ++++---
.../camel/impl/Mock321ScheduledPollConsumer.java | 10 ++++++----
.../processor/DeadLetterChannelNoRedeliveryTest.java | 8 +++++---
.../RedeliveryErrorHandlerBlockedDelayTest.java | 7 +++++--
.../RedeliveryErrorHandlerNonBlockedDelayTest.java | 7 +++++--
...veryErrorHandlerNonBlockedRedeliveryHeaderTest.java | 7 +++++--
.../RedeliveryOnExceptionBlockedDelayTest.java | 7 +++++--
.../AggregateSimpleExpressionIssueManualTest.java | 6 ++++--
.../async/AsyncEndpointCustomRoutePolicyTest.java | 7 ++++---
...ointRedeliveryErrorHandlerNonBlockedDelay2Test.java | 7 +++++--
...pointRedeliveryErrorHandlerNonBlockedDelayTest.java | 7 +++++--
.../org/apache/camel/management/LoadTimerTest.java | 8 +++++---
.../support/task/BackgroundIterationTimeTaskTest.java | 14 +++++++-------
.../apache/camel/support/task/BackgroundTaskTest.java | 10 +++++-----
.../apache/camel/support/task/ForegroundTaskTest.java | 12 ++++++------
.../camel/support/task/ForegroundTimeTaskTest.java | 14 +++++++-------
.../org/apache/camel/support/task/TaskTestSupport.java | 18 ++++++++++--------
19 files changed, 102 insertions(+), 70 deletions(-)
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileBeginFailureOneTimeTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileBeginFailureOneTimeTest.java
index 81dc264ca50..f4cc528c190 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileBeginFailureOneTimeTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileBeginFailureOneTimeTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.component.file;
import java.io.File;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
@@ -63,7 +64,7 @@ public class FileBeginFailureOneTimeTest extends ContextTestSupport {
private static class MyStrategy implements GenericFileProcessStrategy<File> {
- private volatile int invoked;
+ private LongAdder invoked = new LongAdder();
@Override
public void prepareOnStartup(
@@ -75,8 +76,8 @@ public class FileBeginFailureOneTimeTest extends ContextTestSupport {
GenericFileOperations<File> fileGenericFileOperations, GenericFileEndpoint<File> fileGenericFileEndpoint,
Exchange exchange,
GenericFile<File> fileGenericFile) {
- invoked++;
- if (invoked <= 1) {
+ invoked.increment();
+ if (invoked.intValue() <= 1) {
throw new IllegalArgumentException("Damn I cannot do this");
}
return true;
@@ -105,7 +106,7 @@ public class FileBeginFailureOneTimeTest extends ContextTestSupport {
}
public int getInvoked() {
- return invoked;
+ return invoked.intValue();
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerCustomSchedulerTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerCustomSchedulerTest.java
index aad6cd3efc8..735e462caf0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerCustomSchedulerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerCustomSchedulerTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.file;
import java.util.Timer;
import java.util.TimerTask;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
@@ -71,7 +72,7 @@ public class FileConsumerCustomSchedulerTest extends ContextTestSupport {
private CamelContext camelContext;
private TimerTask timerTask;
- private volatile int counter;
+ private LongAdder counter = new LongAdder();
private String foo;
@Override
@@ -84,7 +85,7 @@ public class FileConsumerCustomSchedulerTest extends ContextTestSupport {
this.timerTask = new TimerTask() {
@Override
public void run() {
- counter++;
+ counter.increment();
task.run();
}
};
@@ -96,7 +97,7 @@ public class FileConsumerCustomSchedulerTest extends ContextTestSupport {
}
public int getCounter() {
- return counter;
+ return counter.intValue();
}
public String getFoo() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/EndpointShutdownOnceTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/EndpointShutdownOnceTest.java
index 24426861ce8..ddb63e0b1bc 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/EndpointShutdownOnceTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/EndpointShutdownOnceTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.impl;
import java.util.Map;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
@@ -62,14 +63,14 @@ public class EndpointShutdownOnceTest {
private static final class MyEndpoint extends DefaultEndpoint {
- private volatile int invoked;
+ private LongAdder invoked = new LongAdder();
private MyEndpoint(String endpointUri, Component component) {
super(endpointUri, component);
}
public int getInvoked() {
- return invoked;
+ return invoked.intValue();
}
@Override
@@ -90,7 +91,7 @@ public class EndpointShutdownOnceTest {
@Override
protected void doShutdown() throws Exception {
super.doShutdown();
- invoked++;
+ invoked.increment();
}
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/Mock321ScheduledPollConsumer.java b/core/camel-core/src/test/java/org/apache/camel/impl/Mock321ScheduledPollConsumer.java
index 611d3568d71..e958e251eb1 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/Mock321ScheduledPollConsumer.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/Mock321ScheduledPollConsumer.java
@@ -16,12 +16,14 @@
*/
package org.apache.camel.impl;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.apache.camel.Processor;
import org.apache.camel.support.DefaultEndpoint;
public class Mock321ScheduledPollConsumer extends MockScheduledPollConsumer {
- private volatile int counter = 4;
+ private final AtomicInteger counter = new AtomicInteger(4);
public Mock321ScheduledPollConsumer(DefaultEndpoint endpoint, Processor processor) {
super(endpoint, processor);
@@ -29,10 +31,10 @@ public class Mock321ScheduledPollConsumer extends MockScheduledPollConsumer {
@Override
protected int poll() {
- if (counter > 0) {
- counter = counter - 1;
+ if (counter.get() > 0) {
+ counter.decrementAndGet();
}
- return counter;
+ return counter.get();
}
@Override
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelNoRedeliveryTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelNoRedeliveryTest.java
index 695fd045163..6f8fe66345a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelNoRedeliveryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelNoRedeliveryTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -29,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
*/
public class DeadLetterChannelNoRedeliveryTest extends ContextTestSupport {
- private static volatile int counter;
+ private static LongAdder counter = new LongAdder();
@Test
public void testDLCNoRedelivery() throws Exception {
@@ -41,7 +43,7 @@ public class DeadLetterChannelNoRedeliveryTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
- assertEquals(1, counter, "Only the original attempt");
+ assertEquals(1, counter.intValue(), "Only the original attempt");
}
@Override
@@ -60,7 +62,7 @@ public class DeadLetterChannelNoRedeliveryTest extends ContextTestSupport {
@Override
public void process(Exchange exchange) {
- counter++;
+ counter.increment();
throw new IllegalArgumentException("Forced");
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
index 030ffab3961..369424da82f 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -29,7 +31,7 @@ public class RedeliveryErrorHandlerBlockedDelayTest extends ContextTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(RedeliveryErrorHandlerBlockedDelayTest.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
@Test
public void testRedelivery() throws Exception {
@@ -61,7 +63,8 @@ public class RedeliveryErrorHandlerBlockedDelayTest extends ContextTestSupport {
String body = exchange.getIn().getBody(String.class);
if (body.contains("World")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
index e82c882ca5d..e7bc686ee52 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -29,7 +31,7 @@ public class RedeliveryErrorHandlerNonBlockedDelayTest extends ContextTestSuppor
private static final Logger LOG = LoggerFactory.getLogger(RedeliveryErrorHandlerNonBlockedDelayTest.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
@Test
public void testRedelivery() throws Exception {
@@ -61,7 +63,8 @@ public class RedeliveryErrorHandlerNonBlockedDelayTest extends ContextTestSuppor
String body = exchange.getIn().getBody(String.class);
if (body.contains("World")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest.java
index ec1cf71005e..0974b4ad74a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -29,7 +31,7 @@ public class RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest extends Contex
private static final Logger LOG = LoggerFactory.getLogger(RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
@Test
public void testRedelivery() throws Exception {
@@ -63,7 +65,8 @@ public class RedeliveryErrorHandlerNonBlockedRedeliveryHeaderTest extends Contex
String body = exchange.getIn().getBody(String.class);
if (body.contains("World")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
index c55298d9501..9f2f368c790 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -29,7 +31,7 @@ public class RedeliveryOnExceptionBlockedDelayTest extends ContextTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(RedeliveryOnExceptionBlockedDelayTest.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
@Test
public void testRedelivery() throws Exception {
@@ -61,7 +63,8 @@ public class RedeliveryOnExceptionBlockedDelayTest extends ContextTestSupport {
String body = exchange.getIn().getBody(String.class);
if (body.contains("World")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateSimpleExpressionIssueManualTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateSimpleExpressionIssueManualTest.java
index bc0360590e1..2b828f82434 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateSimpleExpressionIssueManualTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateSimpleExpressionIssueManualTest.java
@@ -21,6 +21,7 @@ import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.AggregationStrategy;
import org.apache.camel.ContextTestSupport;
@@ -87,10 +88,11 @@ public class AggregateSimpleExpressionIssueManualTest extends ContextTestSupport
}
public static final class MyBean {
- private volatile int cnt;
+ private LongAdder cnt = new LongAdder();
public void invoke(final List<String> strList) {
- LOG.info("Batch {}", ++cnt);
+ cnt.increment();
+ LOG.info("Batch {}", cnt.intValue());
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
index 1fd1901fcfa..f3255198973 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.processor.async;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
@@ -40,13 +41,13 @@ public class AsyncEndpointCustomRoutePolicyTest extends ContextTestSupport {
private static class MyCustomRoutePolicy extends RoutePolicySupport {
- private volatile int invoked;
+ private LongAdder invoked = new LongAdder();
private final AtomicBoolean stopped = new AtomicBoolean();
@Override
public void onExchangeDone(Route route, Exchange exchange) {
- invoked++;
- if (invoked >= 2) {
+ invoked.increment();
+ if (invoked.intValue() >= 2) {
try {
stopped.set(true);
stopConsumer(route.getConsumer());
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
index c238895f586..5a309593e4c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor.async;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -31,7 +33,7 @@ public class AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test extends Con
private static final Logger LOG = LoggerFactory.getLogger(AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
private static String beforeThreadName;
private static String afterThreadName;
@@ -69,7 +71,8 @@ public class AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test extends Con
String body = exchange.getIn().getBody(String.class);
if (body.contains("Camel")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
index 39166c4cfec..e7fd429512d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor.async;
+import java.util.concurrent.atomic.LongAdder;
+
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -31,7 +33,7 @@ public class AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest extends Cont
private static final Logger LOG = LoggerFactory.getLogger(AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.class);
- private static volatile int attempt;
+ private static LongAdder attempt = new LongAdder();
private static String beforeThreadName;
private static String afterThreadName;
@@ -66,7 +68,8 @@ public class AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest extends Cont
String body = exchange.getIn().getBody(String.class);
if (body.contains("World")) {
- if (++attempt <= 2) {
+ attempt.increment();
+ if (attempt.intValue() <= 2) {
LOG.info("Processing failed will thrown an exception");
throw new IllegalArgumentException("Damn");
}
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/LoadTimerTest.java b/core/camel-management/src/test/java/org/apache/camel/management/LoadTimerTest.java
index 66c3f053504..200bc34f1e2 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/LoadTimerTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/LoadTimerTest.java
@@ -17,6 +17,7 @@
package org.apache.camel.management;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.LongAdder;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.TimerListener;
@@ -50,7 +51,7 @@ public class LoadTimerTest extends ContextTestSupport {
myTimer.addTimerListener(test);
try {
await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
- assertTrue(test.counter >= SAMPLES);
+ assertTrue(test.counter.intValue() >= SAMPLES);
assertFalse(Double.isNaN(test.load.getLoad1()));
assertTrue(test.load.getLoad1() > 0.0d);
assertTrue(test.load.getLoad1() < SAMPLES);
@@ -64,12 +65,13 @@ public class LoadTimerTest extends ContextTestSupport {
private static class TestLoadAware implements TimerListener {
- volatile int counter;
+ LongAdder counter = new LongAdder();
final LoadTriplet load = new LoadTriplet();
@Override
public void onTimer() {
- load.update(++counter);
+ counter.increment();
+ load.update(counter.intValue());
}
}
diff --git a/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundIterationTimeTaskTest.java b/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundIterationTimeTaskTest.java
index b7f112e1a2c..d2f4b22886d 100644
--- a/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundIterationTimeTaskTest.java
+++ b/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundIterationTimeTaskTest.java
@@ -48,7 +48,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::booleanSupplier);
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
assertFalse(completed, "The task did not complete, the return should be false");
}
@@ -67,7 +67,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::booleanSupplier);
- assertTrue(maxIterations > taskCount, "The task execution should not exceed the max iterations");
+ assertTrue(maxIterations > taskCount.intValue(), "The task execution should not exceed the max iterations");
assertFalse(completed, "The task did not complete, the return should be false");
}
@@ -85,7 +85,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicate, new Object());
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
assertFalse(completed, "The task did not complete, the return should be false");
}
@@ -105,7 +105,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStop, Integer.valueOf(3));
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
assertTrue(completed, "The task did complete, the return should be true");
}
@@ -124,7 +124,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStopSlow, Integer.valueOf(3));
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
assertFalse(completed, "The task did not complete because of timeout, the return should be false");
}
@@ -143,7 +143,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStopSlow, Integer.valueOf(3));
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
assertFalse(completed, "The task did not complete because of timeout, the return should be false");
}
@@ -161,7 +161,7 @@ public class BackgroundIterationTimeTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStop, 4);
- assertTrue(maxIterations > taskCount, "The task execution should not exceed the max iterations");
+ assertTrue(maxIterations > taskCount.intValue(), "The task execution should not exceed the max iterations");
assertTrue(completed, "The task did not complete, the return should be false");
}
}
diff --git a/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundTaskTest.java b/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundTaskTest.java
index 2907d059d07..b7734efaa9c 100644
--- a/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundTaskTest.java
+++ b/core/camel-support/src/test/java/org/apache/camel/support/task/BackgroundTaskTest.java
@@ -58,7 +58,7 @@ public class BackgroundTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::booleanSupplier);
- assertTrue(taskCount <= maxIterations);
+ assertTrue(taskCount.intValue() <= maxIterations);
assertFalse(completed, "The task did not complete, the return should be false");
Duration duration = task.elapsed();
@@ -88,7 +88,7 @@ public class BackgroundTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::booleanSupplier);
- assertTrue((maxIterations - 1) <= taskCount);
+ assertTrue((maxIterations - 1) <= taskCount.intValue());
assertFalse(completed, "The task did not complete, the return should be false");
Duration duration = task.elapsed();
@@ -118,7 +118,7 @@ public class BackgroundTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicate, new Object());
- assertTrue(taskCount <= maxIterations);
+ assertTrue(taskCount.intValue() <= maxIterations);
assertFalse(completed, "The task did not complete, the return should be false");
Duration duration = task.elapsed();
@@ -147,7 +147,7 @@ public class BackgroundTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStop, Integer.valueOf(3));
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
assertTrue(completed, "The task did complete, the return should be true");
}
@@ -169,7 +169,7 @@ public class BackgroundTaskTest extends TaskTestSupport {
.build();
boolean completed = task.run(this::taskPredicateWithDeterministicStopSlow, Integer.valueOf(3));
- assertTrue(taskCount <= 2, "Slow task: it should not run more than 2 times in 4 seconds");
+ assertTrue(taskCount.intValue() <= 2, "Slow task: it should not run more than 2 times in 4 seconds");
Duration duration = task.elapsed();
assertNotNull(duration);
diff --git a/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTaskTest.java b/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTaskTest.java
index 83b9f543aa0..7c31afb160b 100644
--- a/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTaskTest.java
+++ b/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTaskTest.java
@@ -45,7 +45,7 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::booleanSupplier);
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
Duration duration = task.elapsed();
assertNotNull(duration);
@@ -67,7 +67,7 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::booleanSupplier);
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
}
@DisplayName("Test that the task does not run for more than the max iterations when using a predicate and an initial delay")
@@ -84,7 +84,7 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicate, new Object());
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
}
@DisplayName("Test that the task stops running once the predicate is true")
@@ -101,7 +101,7 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStop, Integer.valueOf(3));
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
}
@DisplayName("Test that the task stops running once the predicate is true when the test is slow")
@@ -118,7 +118,7 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStopSlow, Integer.valueOf(3));
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
}
@DisplayName("Test that the task stops running once the predicate is true when the test is slow")
@@ -135,6 +135,6 @@ public class ForegroundTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStopSlow, Integer.valueOf(3));
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
}
}
diff --git a/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTimeTaskTest.java b/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTimeTaskTest.java
index 795659b242f..e6b9a2bd9fa 100644
--- a/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTimeTaskTest.java
+++ b/core/camel-support/src/test/java/org/apache/camel/support/task/ForegroundTimeTaskTest.java
@@ -46,7 +46,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::booleanSupplier);
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
Duration duration = task.elapsed();
assertNotNull(duration);
@@ -70,7 +70,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::booleanSupplier);
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
}
@DisplayName("Test that the task does not run for more than the max iterations when using a predicate and an initial delay")
@@ -88,7 +88,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicate, new Object());
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
}
@DisplayName("Test that the task does not run for more than the max duration when using a predicate and an initial delay")
@@ -106,7 +106,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicate, new Object());
- assertEquals(maxIterations, taskCount);
+ assertEquals(maxIterations, taskCount.intValue());
}
@DisplayName("Test that the task stops running once the predicate is true")
@@ -124,7 +124,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStop, 3);
- assertEquals(3, taskCount);
+ assertEquals(3, taskCount.intValue());
}
@DisplayName("Test that the task stops running once the predicate is true when the test is slow")
@@ -142,7 +142,7 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStopSlow, 3);
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
}
@DisplayName("Test that the task stops running once the predicate is true when the test is slow")
@@ -160,6 +160,6 @@ class ForegroundTimeTaskTest extends TaskTestSupport {
.build();
task.run(this::taskPredicateWithDeterministicStopSlow, 3);
- assertTrue(taskCount < maxIterations);
+ assertTrue(taskCount.intValue() < maxIterations);
}
}
diff --git a/core/camel-support/src/test/java/org/apache/camel/support/task/TaskTestSupport.java b/core/camel-support/src/test/java/org/apache/camel/support/task/TaskTestSupport.java
index b51e98a5bd8..a0cd53bbb2a 100644
--- a/core/camel-support/src/test/java/org/apache/camel/support/task/TaskTestSupport.java
+++ b/core/camel-support/src/test/java/org/apache/camel/support/task/TaskTestSupport.java
@@ -17,23 +17,25 @@
package org.apache.camel.support.task;
+import java.util.concurrent.atomic.LongAdder;
+
import org.junit.jupiter.api.BeforeEach;
import static org.junit.jupiter.api.Assertions.assertNotNull;
public class TaskTestSupport {
protected final int maxIterations = 5;
- protected volatile int taskCount;
+ protected LongAdder taskCount = new LongAdder();
protected boolean booleanSupplier() {
- taskCount++;
+ taskCount.increment();
return false;
}
protected boolean taskPredicate(Object o) {
assertNotNull(o);
- taskCount++;
+ taskCount.increment();
return false;
}
@@ -41,8 +43,8 @@ public class TaskTestSupport {
protected boolean taskPredicateWithDeterministicStop(Integer stopAtValue) {
assertNotNull(stopAtValue);
- taskCount++;
- if (taskCount == stopAtValue.intValue()) {
+ taskCount.increment();
+ if (taskCount.intValue() == stopAtValue) {
return true;
}
@@ -58,8 +60,8 @@ public class TaskTestSupport {
return false;
}
- taskCount++;
- if (taskCount == stopAtValue.intValue()) {
+ taskCount.increment();
+ if (taskCount.intValue() == stopAtValue) {
return true;
}
@@ -68,6 +70,6 @@ public class TaskTestSupport {
@BeforeEach
void setUp() {
- taskCount = 0;
+ taskCount.reset();
}
}