More informative debug output.
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
index 23e4d1c..0ccaae8 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
+import java.util.stream.Stream;
import org.apache.commons.AbstractVfsTestCase;
import org.apache.commons.io.FileUtils;
@@ -198,7 +199,7 @@
baseFolder = null;
testSuite = null;
- // force the SoftRefFilesChache to free all files
+ // Suggest to threads (SoftRefFilesChache) to free all files.
System.gc();
Thread.sleep(1000);
System.gc();
@@ -246,7 +247,8 @@
return StringUtils.EMPTY;
}
final StringBuffer sb = new StringBuffer(256);
- sb.append("created threads still running:\n");
+ sb.append("Created threads still running:");
+ sb.append(System.lineSeparator());
Field threadTargetField = null;
try {
@@ -263,24 +265,24 @@
continue;
}
liveCount++;
- sb.append("#");
- sb.append(index + 1);
- sb.append(": ");
- final ThreadGroup threadGroup = thread.getThreadGroup();
- sb.append(threadGroup != null ? threadGroup.getName() : "(null)");
- sb.append("\t");
- sb.append(thread.getName());
- sb.append("\t");
+ sb.append("Thread[");
+ sb.append(index);
+ sb.append("]: ");
+ sb.append(" ID ");
+ sb.append(thread.getId());
+ sb.append(", ");
+ // prints [name,priority,group]
+ sb.append(thread);
+ sb.append(", ");
sb.append(thread.getState());
- sb.append("\t");
- if (thread.isDaemon()) {
- sb.append("daemon");
- } else {
- sb.append("not_a_daemon");
- }
+ sb.append(", ");
+ if (!thread.isDaemon()) {
+ sb.append("non_");
+ }
+ sb.append("daemon");
if (threadTargetField != null) {
- sb.append("\t");
+ sb.append(", ");
try {
final Object threadTarget = threadTargetField.get(thread);
if (threadTarget != null) {
@@ -289,11 +291,18 @@
sb.append("null");
}
} catch (final IllegalAccessException e) {
- sb.append("unknown class");
+ sb.append("unknown (");
+ sb.append(e);
+ sb.append(")");
}
}
- sb.append("\n");
+ sb.append(System.lineSeparator());
+// Stream.of(thread.getStackTrace()).forEach(e -> {
+// sb.append('\t');
+// sb.append(e);
+// sb.append(System.lineSeparator());
+// });
}
if (liveCount == 0) {
return StringUtils.EMPTY;