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(-)
----------------------------------------------------------------------