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 2016/01/12 23:24:22 UTC
[1/3] activemq-artemis git commit: fixing BackupSyncJournalTest
Repository: activemq-artemis
Updated Branches:
refs/heads/master 8b6d3a65b -> a8443512b
fixing BackupSyncJournalTest
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/2e973c4b
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/2e973c4b
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/2e973c4b
Branch: refs/heads/master
Commit: 2e973c4bff6911ed2a0a6f86b41531e7a7a212cb
Parents: 2d3061d
Author: Clebert Suconic <cl...@apache.org>
Authored: Tue Jan 12 15:39:31 2016 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Jan 12 17:22:56 2016 -0500
----------------------------------------------------------------------
.../core/impl/wireformat/SessionReceiveLargeMessage.java | 4 +++-
.../apache/activemq/artemis/core/server/impl/QueueImpl.java | 5 ++---
.../activemq/artemis/core/server/impl/ServerConsumerImpl.java | 7 ++++---
3 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2e973c4b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionReceiveLargeMessage.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionReceiveLargeMessage.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionReceiveLargeMessage.java
index 8b32256..aa5d98f 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionReceiveLargeMessage.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/SessionReceiveLargeMessage.java
@@ -84,7 +84,9 @@ public class SessionReceiveLargeMessage extends PacketImpl implements MessagePac
buffer.writeLong(consumerID);
buffer.writeInt(deliveryCount);
buffer.writeLong(largeMessageSize);
- message.encodeHeadersAndProperties(buffer);
+ if (message != null) {
+ message.encodeHeadersAndProperties(buffer);
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2e973c4b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 12b5231..6f3cc6f 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -2493,8 +2493,10 @@ public class QueueImpl implements Queue {
private void proceedDeliver(Consumer consumer, MessageReference reference) {
try {
consumer.proceedDeliver(reference);
+ deliveriesInTransit.countDown();
}
catch (Throwable t) {
+ deliveriesInTransit.countDown();
ActiveMQServerLogger.LOGGER.removingBadConsumer(t, consumer, reference);
synchronized (this) {
@@ -2510,9 +2512,6 @@ public class QueueImpl implements Queue {
addHead(reference);
}
}
- finally {
- deliveriesInTransit.countDown();
- }
}
private boolean checkExpired(final MessageReference reference) {
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2e973c4b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java
index 9468819..1cfc4f8 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerConsumerImpl.java
@@ -970,7 +970,8 @@ public class ServerConsumerImpl implements ServerConsumer, ReadyListener {
public boolean deliver() throws Exception {
lockDelivery.readLock().lock();
try {
- if (largeMessage == null) {
+ LargeServerMessage currentLargeMessage = largeMessage;
+ if (currentLargeMessage == null) {
return true;
}
@@ -984,7 +985,7 @@ public class ServerConsumerImpl implements ServerConsumer, ReadyListener {
}
if (!sentInitialPacket) {
- context = largeMessage.getBodyEncoder();
+ context = currentLargeMessage.getBodyEncoder();
sizePendingLargeMessage = context.getLargeBodySize();
@@ -992,7 +993,7 @@ public class ServerConsumerImpl implements ServerConsumer, ReadyListener {
sentInitialPacket = true;
- int packetSize = callback.sendLargeMessage(largeMessage, ServerConsumerImpl.this, context.getLargeBodySize(), ref.getDeliveryCount());
+ int packetSize = callback.sendLargeMessage(currentLargeMessage, ServerConsumerImpl.this, context.getLargeBodySize(), ref.getDeliveryCount());
if (availableCredits != null) {
availableCredits.addAndGet(-packetSize);
[2/3] activemq-artemis git commit: Improvements on Thread check
Posted by cl...@apache.org.
Improvements on Thread check
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/2d3061d9
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/2d3061d9
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/2d3061d9
Branch: refs/heads/master
Commit: 2d3061d9b69de61cb89ea9cc3e5898e32caf7198
Parents: 8b6d3a6
Author: Clebert Suconic <cl...@apache.org>
Authored: Tue Jan 12 15:10:48 2016 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Jan 12 17:22:56 2016 -0500
----------------------------------------------------------------------
.../artemis/tests/util/ThreadLeakCheckRule.java | 94 +++++++++-----------
.../cluster/failover/FailoverTest.java | 1 -
.../failover/LiveToLiveFailoverTest.java | 1 -
3 files changed, 44 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2d3061d9/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ThreadLeakCheckRule.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ThreadLeakCheckRule.java b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ThreadLeakCheckRule.java
index 3f371a8..e3ef4c7 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ThreadLeakCheckRule.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ThreadLeakCheckRule.java
@@ -51,84 +51,78 @@ public class ThreadLeakCheckRule extends ExternalResource {
* Override to tear down your specific external resource.
*/
protected void after() {
- if (enabled) {
- StringBuffer buffer = null;
-
- boolean failed = true;
-
- boolean failedOnce = false;
-
- long timeout = System.currentTimeMillis() + 60000;
- while (failed && timeout > System.currentTimeMillis()) {
- buffer = new StringBuffer();
-
- failed = checkThread(buffer);
-
- if (failed) {
- failedOnce = true;
- ActiveMQTestBase.forceGC();
- try {
- Thread.sleep(500);
+ try {
+ if (enabled) {
+ boolean failed = true;
+
+ boolean failedOnce = false;
+
+ long timeout = System.currentTimeMillis() + 60000;
+ while (failed && timeout > System.currentTimeMillis()) {
+ failed = checkThread();
+
+ if (failed) {
+ failedOnce = true;
+ ActiveMQTestBase.forceGC();
+ try {
+ Thread.sleep(500);
+ }
+ catch (Throwable e) {
+ }
}
- catch (Throwable e) {
- }
-
- System.out.println("There are still threads running, trying again");
- System.out.println(buffer);
}
- }
- if (failed) {
- System.out.println("Thread leaked on test \n" +
- buffer);
- System.out.println("Thread leakage! Failure!!!");
+ if (failed) {
+ Assert.fail("Thread leaked");
+ }
+ else if (failedOnce) {
+ System.out.println("******************** Threads cleared after retries ********************");
+ System.out.println();
+ }
- Assert.fail("Thread leaked");
}
- else if (failedOnce) {
- System.out.println("******************** Threads cleared after retries ********************");
- System.out.println();
+ else {
+ enabled = true;
}
-
-
}
- else {
- enabled = true;
+ finally {
+ // clearing just to help GC
+ previousThreads = null;
}
}
-
- /**
- * @param buffer
- * @return
- */
- private boolean checkThread(StringBuffer buffer) {
+ private boolean checkThread() {
boolean failedThread = false;
Map<Thread, StackTraceElement[]> postThreads = Thread.getAllStackTraces();
if (postThreads != null && previousThreads != null && postThreads.size() > previousThreads.size()) {
- buffer.append("*********************************************************************************\n");
- buffer.append("LEAKING THREADS\n");
for (Thread aliveThread : postThreads.keySet()) {
- if (!isExpectedThread(aliveThread) && !previousThreads.containsKey(aliveThread)) {
+ if (aliveThread.isAlive() && !isExpectedThread(aliveThread) && !previousThreads.containsKey(aliveThread)) {
+ if (!failedThread) {
+ System.out.println("*********************************************************************************");
+ System.out.println("LEAKING THREADS");
+ }
failedThread = true;
- buffer.append("=============================================================================\n");
- buffer.append("Thread " + aliveThread + " is still alive with the following stackTrace:\n");
+ System.out.println("=============================================================================");
+ System.out.println("Thread " + aliveThread + " is still alive with the following stackTrace:");
StackTraceElement[] elements = postThreads.get(aliveThread);
for (StackTraceElement el : elements) {
- buffer.append(el + "\n");
+ System.out.println(el);
}
}
}
- buffer.append("*********************************************************************************\n");
-
+ if (failedThread) {
+ System.out.println("*********************************************************************************");
+ }
}
+
+
return failedThread;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2d3061d9/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
index 28012eb..8b78f3d 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/FailoverTest.java
@@ -1393,7 +1393,6 @@ public class FailoverTest extends FailoverTestBase {
@Test
public void testCreateNewFactoryAfterFailover() throws Exception {
- this.disableCheckThread();
locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setFailoverOnInitialConnection(true);
sf = createSessionFactoryAndWaitForTopology(locator, 2);
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/2d3061d9/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
index d0876b3..68f65a4 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/cluster/failover/LiveToLiveFailoverTest.java
@@ -246,7 +246,6 @@ public class LiveToLiveFailoverTest extends FailoverTest {
@Override
@Test
public void testCreateNewFactoryAfterFailover() throws Exception {
- this.disableCheckThread();
locator.setBlockOnNonDurableSend(true).setBlockOnDurableSend(true).setFailoverOnInitialConnection(true);
sf = createSessionFactoryAndWaitForTopology(locator, 2);
[3/3] activemq-artemis git commit: This closes #312
Posted by cl...@apache.org.
This closes #312
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/a8443512
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/a8443512
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/a8443512
Branch: refs/heads/master
Commit: a8443512b0476170b0f18dcd043d2ed881e625de
Parents: 8b6d3a6 2e973c4
Author: Clebert Suconic <cl...@apache.org>
Authored: Tue Jan 12 17:24:10 2016 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Jan 12 17:24:10 2016 -0500
----------------------------------------------------------------------
.../wireformat/SessionReceiveLargeMessage.java | 4 +-
.../artemis/core/server/impl/QueueImpl.java | 5 +-
.../core/server/impl/ServerConsumerImpl.java | 7 +-
.../artemis/tests/util/ThreadLeakCheckRule.java | 94 +++++++++-----------
.../cluster/failover/FailoverTest.java | 1 -
.../failover/LiveToLiveFailoverTest.java | 1 -
6 files changed, 53 insertions(+), 59 deletions(-)
----------------------------------------------------------------------