You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2014/10/17 00:54:35 UTC
[3/6] git commit: rework npe avoidance in vmtransport stop to resolve
thread leakage test failure
rework npe avoidance in vmtransport stop to resolve thread leakage test failure
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/243db1c2
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/243db1c2
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/243db1c2
Branch: refs/heads/trunk
Commit: 243db1c289e8e1394adc7751a7a545af6df06fc9
Parents: 2050498
Author: gtully <ga...@gmail.com>
Authored: Mon Oct 13 22:24:02 2014 +0100
Committer: gtully <ga...@gmail.com>
Committed: Thu Oct 16 23:35:18 2014 +0100
----------------------------------------------------------------------
.../activemq/transport/vm/VMTransport.java | 26 +++++++++++---------
.../transport/failover/AMQ1925Test.java | 4 +--
.../activemq/usecases/QueueBrowsingTest.java | 4 ++-
3 files changed, 19 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/243db1c2/activemq-broker/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/transport/vm/VMTransport.java b/activemq-broker/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
index ef1b1e2..75bd6fe 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/transport/vm/VMTransport.java
@@ -171,7 +171,7 @@ public class VMTransport implements Transport, Task {
public void stop() throws Exception {
// Only need to do this once, all future oneway calls will now
// fail as will any asnyc jobs in the task runner.
- if (disposed.compareAndSet(false, true) && started.get()) {
+ if (disposed.compareAndSet(false, true)) {
TaskRunner tr = taskRunner;
LinkedBlockingQueue<Object> mq = this.messageQueue;
@@ -193,18 +193,20 @@ public class VMTransport implements Transport, Task {
tr = null;
}
- // let the peer know that we are disconnecting after attempting
- // to cleanly shutdown the async tasks so that this is the last
- // command it see's.
- try {
- peer.transportListener.onCommand(new ShutdownInfo());
- } catch (Exception ignore) {
- }
+ if (peer.transportListener != null) {
+ // let the peer know that we are disconnecting after attempting
+ // to cleanly shutdown the async tasks so that this is the last
+ // command it see's.
+ try {
+ peer.transportListener.onCommand(new ShutdownInfo());
+ } catch (Exception ignore) {
+ }
- // let any requests pending a response see an exception
- try {
- peer.transportListener.onException(new TransportDisposedIOException("peer (" + this + ") stopped."));
- } catch (Exception ignore) {
+ // let any requests pending a response see an exception
+ try {
+ peer.transportListener.onException(new TransportDisposedIOException("peer (" + this + ") stopped."));
+ } catch (Exception ignore) {
+ }
}
// shutdown task runner factory
http://git-wip-us.apache.org/repos/asf/activemq/blob/243db1c2/activemq-unit-tests/src/test/java/org/apache/activemq/transport/failover/AMQ1925Test.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/failover/AMQ1925Test.java b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/failover/AMQ1925Test.java
index ce78f7f..dfb5dfd 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/failover/AMQ1925Test.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/failover/AMQ1925Test.java
@@ -266,7 +266,7 @@ public class AMQ1925Test extends TestCase implements ExceptionListener {
boolean restartDone = false;
for (int i = 0; i < MESSAGE_COUNT; i++) {
- Message message = consumer.receive(500);
+ Message message = consumer.receive(5000);
assertNotNull(message);
if (i == 222 && !restartDone) {
@@ -307,7 +307,7 @@ public class AMQ1925Test extends TestCase implements ExceptionListener {
.createQueue(QUEUE_NAME));
for (int i = 0; i < MESSAGE_COUNT; i++) {
- Message message = consumer.receive(500);
+ Message message = consumer.receive(5000);
assertNotNull(message);
assertEquals(i, message.getIntProperty(PROPERTY_MSG_NUMBER));
http://git-wip-us.apache.org/repos/asf/activemq/blob/243db1c2/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueBrowsingTest.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueBrowsingTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueBrowsingTest.java
index c3d66e9..29b6e72 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueBrowsingTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/QueueBrowsingTest.java
@@ -17,6 +17,8 @@
package org.apache.activemq.usecases;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
import java.io.IOException;
import java.net.URI;
@@ -209,6 +211,6 @@ public class QueueBrowsingTest {
}
browser.close();
- assertEquals(maxPageSize + 1, received);
+ assertTrue("got at least maxPageSize", received >= maxPageSize);
}
}