You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/03/09 22:28:06 UTC
[1/2] activemq-artemis git commit: ARTEMIS-827 AMQP test client
validator classes not thread safe
Repository: activemq-artemis
Updated Branches:
refs/heads/master 2b7807f7e -> 0b1e48a7f
ARTEMIS-827 AMQP test client validator classes not thread safe
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/59de5ed8
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/59de5ed8
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/59de5ed8
Branch: refs/heads/master
Commit: 59de5ed8a4201a50191dd2c3d9d3371165a15167
Parents: 2b7807f
Author: Francesco Nigro <ni...@gmail.com>
Authored: Thu Oct 27 15:50:24 2016 +0200
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 17:27:50 2017 -0500
----------------------------------------------------------------------
.../amqp/client/AmqpFrameValidator.java | 37 ++++++++++----------
.../transport/amqp/client/AmqpValidator.java | 36 +++++++++----------
2 files changed, 35 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/59de5ed8/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpFrameValidator.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpFrameValidator.java b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpFrameValidator.java
index 4796110..dec8529 100644
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpFrameValidator.java
+++ b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpFrameValidator.java
@@ -16,6 +16,8 @@
*/
package org.apache.activemq.transport.amqp.client;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.qpid.proton.amqp.Binary;
import org.apache.qpid.proton.amqp.transport.Attach;
import org.apache.qpid.proton.amqp.transport.Begin;
@@ -29,12 +31,11 @@ import org.apache.qpid.proton.amqp.transport.Transfer;
/**
* Abstract base for a validation hook that is used in tests to check
- * the state of a remote resource after a variety of lifecycle events.
+ * the values of incoming or outgoing AMQP frames.
*/
public class AmqpFrameValidator {
- private boolean valid = true;
- private String errorMessage;
+ private AtomicReference<String> errorMessage = new AtomicReference<>();
public void inspectOpen(Open open, Binary encoded) {
@@ -73,31 +74,29 @@ public class AmqpFrameValidator {
}
public boolean isValid() {
- return valid;
- }
-
- protected void setValid(boolean valid) {
- this.valid = valid;
+ return errorMessage.get() != null;
}
- public String getErrorMessage() {
- return errorMessage;
+ public final void clearErrorMessage() {
+ errorMessage.set(null);
}
- protected void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
+ public final String getErrorMessage() {
+ return errorMessage.get();
}
- protected void markAsInvalid(String errorMessage) {
- if (valid) {
- setValid(false);
- setErrorMessage(errorMessage);
+ protected final boolean markAsInvalid(String message) {
+ if (message == null) {
+ throw new NullPointerException("Provided error message cannot be null!");
}
+
+ return errorMessage.compareAndSet(null, message);
}
- public void assertValid() {
- if (!isValid()) {
- throw new AssertionError(errorMessage);
+ public final void assertValid() {
+ final String assertionErrorMessage = errorMessage.get();
+ if (assertionErrorMessage != null) {
+ throw new AssertionError(assertionErrorMessage);
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/59de5ed8/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpValidator.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpValidator.java b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpValidator.java
index eca7676..236dc60 100644
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpValidator.java
+++ b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/AmqpValidator.java
@@ -16,6 +16,8 @@
*/
package org.apache.activemq.transport.amqp.client;
+import java.util.concurrent.atomic.AtomicReference;
+
import org.apache.qpid.proton.engine.Connection;
import org.apache.qpid.proton.engine.Delivery;
import org.apache.qpid.proton.engine.Receiver;
@@ -28,8 +30,7 @@ import org.apache.qpid.proton.engine.Session;
*/
public class AmqpValidator {
- private boolean valid = true;
- private String errorMessage;
+ private AtomicReference<String> errorMessage = new AtomicReference<>();
public void inspectOpenedResource(Connection connection) {
@@ -76,32 +77,29 @@ public class AmqpValidator {
}
public boolean isValid() {
- return valid;
- }
-
- protected void setValid(boolean valid) {
- this.valid = valid;
+ return this.errorMessage.get() == null;
}
- public String getErrorMessage() {
- return errorMessage;
+ public final void clearErrorMessage() {
+ errorMessage.set(null);
}
- protected void setErrorMessage(String errorMessage) {
- this.errorMessage = errorMessage;
+ public final String getErrorMessage() {
+ return errorMessage.get();
}
- protected void markAsInvalid(String errorMessage) {
- if (valid) {
- setValid(false);
- setErrorMessage(errorMessage);
+ protected final boolean markAsInvalid(String message) {
+ if (message == null) {
+ throw new NullPointerException("Provided error message cannot be null!");
}
+
+ return errorMessage.compareAndSet(null, message);
}
- public void assertValid() {
- if (!isValid()) {
- throw new AssertionError(errorMessage);
+ public final void assertValid() {
+ final String assertionErrorMessage = errorMessage.get();
+ if (assertionErrorMessage != null) {
+ throw new AssertionError(assertionErrorMessage);
}
}
-
}
[2/2] activemq-artemis git commit: This closes #869
Posted by cl...@apache.org.
This closes #869
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/0b1e48a7
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/0b1e48a7
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/0b1e48a7
Branch: refs/heads/master
Commit: 0b1e48a7f4b61cc3b32b33a347ec10e5b815bbaf
Parents: 2b7807f 59de5ed
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 17:27:51 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 17:27:51 2017 -0500
----------------------------------------------------------------------
.../amqp/client/AmqpFrameValidator.java | 37 ++++++++++----------
.../transport/amqp/client/AmqpValidator.java | 36 +++++++++----------
2 files changed, 35 insertions(+), 38 deletions(-)
----------------------------------------------------------------------