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()
     {