You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2013/06/18 23:02:02 UTC
svn commit: r1494301 -
/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
Author: swagle
Date: Tue Jun 18 21:02:02 2013
New Revision: 1494301
URL: http://svn.apache.org/r1494301
Log:
AMBARI-2416. Test Concurrent operations fail intermittently on trunk. (Myroslav Papirkovskyy via swagle)
Modified:
incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java?rev=1494301&r1=1494300&r2=1494301&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java (original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java Tue Jun 18 21:02:02 2013
@@ -19,6 +19,7 @@ package org.apache.ambari.server.agent;
import static org.junit.Assert.*;
+import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -133,10 +134,14 @@ public class TestActionQueue {
ActionQueueOperation[] dequeOperators = new ActionQueueOperation[threadCount];
ActionQueueOperation[] dequeAllOperators = new ActionQueueOperation[threadCount];
+ List<Thread> producers = new ArrayList<Thread>();
+ List<Thread> consumers = new ArrayList<Thread>();
+
for (int i = 0; i < threadCount; i++) {
dequeOperators[i] = new ActionQueueOperation(aq, hosts,
ActionQueueOperation.OpType.DEQUEUE);
Thread t = new Thread(dequeOperators[i]);
+ consumers.add(t);
t.start();
}
@@ -144,6 +149,7 @@ public class TestActionQueue {
enqueOperators[i] = new ActionQueueOperation(aq, hosts,
ActionQueueOperation.OpType.ENQUEUE);
Thread t = new Thread(enqueOperators[i]);
+ producers.add(t);
t.start();
}
@@ -151,6 +157,7 @@ public class TestActionQueue {
dequeAllOperators[i] = new ActionQueueOperation(aq, hosts,
ActionQueueOperation.OpType.DEQUEUEALL);
Thread t = new Thread(dequeAllOperators[i]);
+ consumers.add(t);
t.start();
}
@@ -162,6 +169,10 @@ public class TestActionQueue {
enqueOperators[i].stop();
}
+ for (Thread producer : producers) {
+ producer.join();
+ }
+
// Give time to get everything dequeued
boolean allDequeued = false;
while (!allDequeued) {
@@ -180,6 +191,10 @@ public class TestActionQueue {
dequeOperators[i].stop();
dequeAllOperators[i].stop();
}
+
+ for (Thread consumer : consumers) {
+ consumer.join();
+ }
for (int h = 0; h<hosts.length; h++) {
long opsEnqueued = 0;