FELIX-3891 minor cleanup of felix3680_2 test
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1444488 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java b/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
index 5ad110b..4e20e79 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/ComponentTestBase.java
@@ -669,7 +669,7 @@
private final SimpleDateFormat m_sdf = new SimpleDateFormat( "HH:mm:ss,S" );
private final static PrintStream m_out = new PrintStream( new BufferedOutputStream( new FileOutputStream(
FileDescriptor.err ), 128 ) );
- private final List<String> m_warnings = Collections.synchronizedList( new ArrayList<String>() );//<String>
+ private final List<String> m_warnings = Collections.synchronizedList( new ArrayList<String>() );
private LinkedBlockingQueue<LogEntry> m_logQueue = new LinkedBlockingQueue<LogEntry>();
private volatile Thread m_logThread;
private volatile PrintStream m_realOut;
diff --git a/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java b/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
index b3ca444..701508e 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/Felix3680_2Test.java
@@ -63,7 +63,7 @@
@Test
- public void test_concurrent_injetion_with_bundleContext()
+ public void test_concurrent_injection_with_bundleContext()
{
final Component main = findComponentByName( "org.apache.felix.scr.integration.components.felix3680_2.Main" );
TestCase.assertNotNull( main );
@@ -75,10 +75,6 @@
for ( Iterator it = log.foundWarnings().iterator(); it.hasNext(); )
{
String message = ( String ) it.next();
- if ( message.startsWith( "Performed " ) && message.endsWith( " tests." ) )
- {
- continue;
- }
TestCase.fail( "unexpected warning or error logged: " + message );
}
}
diff --git a/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java b/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
index 57533a1..273e79c 100644
--- a/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
+++ b/scr/src/test/java/org/apache/felix/scr/integration/components/felix3680_2/Main.java
@@ -19,6 +19,9 @@
package org.apache.felix.scr.integration.components.felix3680_2;
+import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadInfo;
+import java.lang.management.ThreadMXBean;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
@@ -27,6 +30,7 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.felix.scr.ScrService;
+import org.apache.felix.scr.impl.manager.ThreadDump;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
@@ -220,6 +224,7 @@
{
System.out.println( "Did not get A injected timely ... see logs.txt" );
m_logService.log( LogService.LOG_ERROR, "enableLatch TIMEOUT" );
+ m_logService.log(LogService.LOG_ERROR, dumpThreads());
dumpA();
System.exit( 1 );
}
@@ -235,6 +240,7 @@
{
System.out.println( "Could not disable components timely ... see logs.txt" );
m_logService.log( LogService.LOG_ERROR, "disableLatch TIMEOUT" );
+ m_logService.log(LogService.LOG_ERROR, dumpThreads());
dumpA();
System.exit( 1 );
}
@@ -246,11 +252,29 @@
++loop;
if ( loop % 100 == 0 )
{
- m_logService.log( LogService.LOG_WARNING, "Performed " + loop + " tests." );
+ m_logService.log( LogService.LOG_INFO, "Performed " + loop + " tests." );
}
}
}
+ private String dumpThreads()
+ {
+ ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
+ StringBuffer b = new StringBuffer( "Thread dump\n" );
+ ThreadInfo[] infos = threadMXBean.dumpAllThreads( threadMXBean.isObjectMonitorUsageSupported(), threadMXBean.isSynchronizerUsageSupported() );
+ for ( int i = 0; i < infos.length; i++ )
+ {
+ ThreadInfo ti = infos[i];
+ b.append( "\n\nThreadId: " ).append( ti.getThreadId() ).append( " : name: " ).append( ti.getThreadName() ).append( " State: " ).append( ti.getThreadState() );
+ b.append( "\n LockInfo: " ).append( ti.getLockInfo() ).append( " LockOwnerId: " ).append( ti.getLockOwnerId() ).append( " LockOwnerName: ").append( ti.getLockOwnerName() );
+ StackTraceElement[] stackTrace = ti.getStackTrace();
+ for (int j = 0; j < stackTrace.length; j++ )
+ {
+ b.append( "\n " ).append( stackTrace[j] );
+ }
+ }
+ return b.toString();
+ }
private void dumpA()
{