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 2013/08/07 23:08:15 UTC
svn commit: r1511491 -
/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java
Author: gtully
Date: Wed Aug 7 21:08:14 2013
New Revision: 1511491
URL: http://svn.apache.org/r1511491
Log:
fix intermittent test failure - memorylimittest on jdbc
Modified:
activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java
Modified: activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java?rev=1511491&r1=1511490&r2=1511491&view=diff
==============================================================================
--- activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java (original)
+++ activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/MemoryLimitTest.java Wed Aug 7 21:08:14 2013
@@ -35,6 +35,7 @@ import org.apache.activemq.broker.region
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.util.ConsumerThread;
import org.apache.activemq.util.ProducerThread;
+import org.apache.activemq.util.Wait;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -127,7 +128,7 @@ public class MemoryLimitTest extends Tes
Thread.sleep(1000);
// assert we didn't break high watermark (70%) usage
- Destination dest = broker.getDestination((ActiveMQQueue) queue);
+ final Destination dest = broker.getDestination((ActiveMQQueue) queue);
LOG.info("Destination usage: " + dest.getMemoryUsage());
int percentUsage = dest.getMemoryUsage().getPercentUsage();
assertTrue("Should be less than 70% of limit but was: " + percentUsage, percentUsage <= 71);
@@ -139,11 +140,16 @@ public class MemoryLimitTest extends Tes
Message msg = consumer.receive();
msg.acknowledge();
- Thread.sleep(1000);
// this should free some space and allow us to get new batch of messages in the memory
// exceeding the limit
- LOG.info("Destination usage: " + dest.getMemoryUsage());
- assertTrue(dest.getMemoryUsage().getPercentUsage() >= 478);
+ assertTrue("Limit is exceeded", Wait.waitFor(new Wait.Condition() {
+ @Override
+ public boolean isSatisified() throws Exception {
+ LOG.info("Destination usage: " + dest.getMemoryUsage());
+ return dest.getMemoryUsage().getPercentUsage() >= 478;
+ }
+ }));
+
LOG.info("Broker usage: " + broker.getSystemUsage().getMemoryUsage());
assertTrue(broker.getSystemUsage().getMemoryUsage().getPercentUsage() >= 478);