Added:
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/ThreadUtil.java
URL:
http://svn.apache.org/viewvc/hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/ThreadUtil.java?rev=1022642view=auto
==
---
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/ThreadUtil.java
(added)
+++
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/ThreadUtil.java
Thu Oct 14 18:45:47 2010
@@ -0,0 +1,70 @@
+package org.apache.zookeeper;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadMXBean;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ThreadUtil {
+
+public static ThreadGroup getRootThreadGroup() {
+ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
+ThreadGroup parentThreadGroup;
+while ( null != (parentThreadGroup = threadGroup.getParent()) ){
+threadGroup = parentThreadGroup;
+}
+return threadGroup;
+}
+
+public static Thread[] getAllThreads() {
+final ThreadGroup root = getRootThreadGroup();
+int arraySize = ManagementFactory.getThreadMXBean().getThreadCount();
+int returnedThreads = 0;
+Thread[] threads;
+do {
+arraySize *= 2;
+threads = new Thread[arraySize];
+returnedThreads = root.enumerate( threads, true );
+} while ( returnedThreads = arraySize );
+return java.util.Arrays.copyOf( threads, returnedThreads );
+}
+
+public static ListThread getThreadsFiltered(String pattern) {
+Thread[] allThreads = getAllThreads();
+ArrayListThread filteredThreads = new ArrayListThread();
+
+
+for(int i=0;iallThreads.length;++i){
+Thread currentThread = allThreads[i];
+if(currentThread.getName().contains(pattern)){
+filteredThreads.add(currentThread);
+}
+}
+return filteredThreads;
+}
+
+public static ListThread getThreadsFiltered(String pattern, Thread
exclude){
+ListThread filteredThreads = getThreadsFiltered(pattern);
+filteredThreads.remove(exclude);
+return filteredThreads;
+}
+
+public static String formatThread(Thread thread){
+StringBuilder out = new StringBuilder();
+out.append(Name: )
+ .append(thread.getName())
+ .append( State: )
+ .append(thread.getState())
+ .append( Prio: )
+ .append(thread.getPriority())
+ .append(\nTrace:\n);
+
+StackTraceElement[] trace = thread.getStackTrace();
+
+for(int i=0;itrace.length;++i){
+out.append(trace[i]).append(\n);
+}
+
+return out.toString();
+}
+}
Modified:
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/AsyncHammerTest.java
URL:
http://svn.apache.org/viewvc/hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/AsyncHammerTest.java?rev=1022642r1=1022641r2=1022642view=diff
==
---
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/AsyncHammerTest.java
(original)
+++
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/AsyncHammerTest.java
Thu Oct 14 18:45:47 2010
@@ -181,7 +181,7 @@ public class AsyncHammerTest extends ZKT
LOG.info(Stopping hammers);
for (int i = 0; i hammers.length; i++) {
hammers[i].interrupt();
-verifyThreadTerminated(hammers[i], 6);
+verifyThreadTerminated(hammers[i], i, 6);
Assert.assertFalse(hammers[i].failed);
}
@@ -210,7 +210,7 @@ public class AsyncHammerTest extends ZKT
bang = false;
for (int i = 0; i hammers.length; i++) {
hammers[i].interrupt();
-verifyThreadTerminated(hammers[i], 6);
+verifyThreadTerminated(hammers[i], i, 6);
}
// before restart
qb.verifyRootOfAllServersMatch(qb.hostPort);
Modified:
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/ClientBase.java
URL:
http://svn.apache.org/viewvc/hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/ClientBase.java?rev=1022642r1=1022641r2=1022642view=diff
==
---
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/ClientBase.java
(original)
+++
hadoop/zookeeper/branches/ZOOKEEPER-823/src/java/test/org/apache/zookeeper/test/ClientBase.java
Thu Oct 14 18:45:47 2010
@@ -43,6 +43,7 @@ import org.apache.log4j.Priority;
import