FELIX-4020 improve logging consistency

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1470397 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
index fe0bbc9..41069a8 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
@@ -187,6 +187,7 @@
         catch ( InterruptedException e )
         {
             Thread.currentThread().interrupt();
+            dumpThreads();
             //TODO this is so wrong
             throw new IllegalStateException( "Could not obtain lock (Reason: " + e + ")" );
         }
@@ -217,11 +218,11 @@
         try
         {
             String dump = new ThreadDump().call();
-            log( LogService.LOG_ERROR, dump, null );
+            log( LogService.LOG_DEBUG, dump, null );
         }
         catch ( Throwable t )
         {
-            log( LogService.LOG_ERROR, "Could not dump threads", t );
+            log( LogService.LOG_DEBUG, "Could not dump threads", t );
         }
     }
 
@@ -280,6 +281,7 @@
                 catch ( InterruptedException e )
                 {
                     Thread.currentThread().interrupt();
+                    dumpThreads();
                 }
             }
         }
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
index 060840e..9475e70 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
@@ -188,6 +188,7 @@
         catch ( InterruptedException e )
         {
             Thread.currentThread().interrupt();
+            getComponentManager().dumpThreads();
             return null;
         }
         return null;
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
index 8d9c1ca..60492d5 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
@@ -1638,7 +1638,7 @@
             {
                 if (!info.getOpenLatch().await( getLockTimeout(), TimeUnit.MILLISECONDS ))
                 {
-                    m_componentManager.log( LogService.LOG_WARNING,
+                    m_componentManager.log( LogService.LOG_ERROR,
                             "DependencyManager : invokeUpdatedMethod : timeout on open latch {0}",  new Object[] {getName()}, null );
                     m_componentManager.dumpThreads();
                 }
@@ -1646,6 +1646,8 @@
             catch ( InterruptedException e )
             {
                 Thread.currentThread().interrupt();
+                m_componentManager.dumpThreads();
+                //ignore
             }
             if ( !getServiceObject( m_bindMethods.getUpdated(), refPair ))
             {
@@ -1699,7 +1701,7 @@
                     {
                         if (!info.getCloseLatch().await( getLockTimeout(), TimeUnit.MILLISECONDS ) )
                         {
-                            m_componentManager.log( LogService.LOG_WARNING,
+                            m_componentManager.log( LogService.LOG_ERROR,
                                     "DependencyManager : invokeUnbindMethod : timeout on close latch {0}",  new Object[] {getName()}, null );
                             m_componentManager.dumpThreads();
                         }
@@ -1707,6 +1709,7 @@
                     catch ( InterruptedException e )
                     {
                         Thread.currentThread().interrupt();
+                        m_componentManager.dumpThreads();
                         //ignore
                     }
                 }
@@ -1724,7 +1727,9 @@
             }
             catch ( InterruptedException e )
             {
-                // TODO Auto-generated catch block
+                Thread.currentThread().interrupt();
+                m_componentManager.dumpThreads();
+                //ignore
             }
 
             if (refPair == null)
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
index b52fe01..fc4371c 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
@@ -284,7 +284,7 @@
             // containing the exception with the Log Service and activation fails
             for ( DependencyManager md: getReversedDependencyManagers() )
             {
-                md.close( implementationObject, null );
+                md.close( implementationObject, componentContext.getEdgeInfo( md ) );
             }
 
             // make sure the implementation object is not available
@@ -295,6 +295,8 @@
         else
         {
             componentContext.setImplementationAccessible( true );
+            m_circularReferences.remove();
+            //this may cause a getService as properties now match a filter.
             setServiceProperties( result );
         }
 
@@ -718,6 +720,8 @@
     {
         if (m_circularReferences.get() != null)
         {
+            log( LogService.LOG_ERROR,  "Circular reference detected, getService returning null", null );
+            dumpThreads();
             return false;             
         }
         m_circularReferences.set( Boolean.TRUE );
@@ -775,6 +779,7 @@
         }
         finally
         {
+            //normally this will have been done after object becomes accessible.  This is double-checking.
             m_circularReferences.remove();
         }
     }
diff --git a/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java b/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java
index 42c5465..be5c514 100644
--- a/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java
+++ b/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java
@@ -181,6 +181,7 @@
                     Thread.currentThread().interrupt();
                     log( LogService.LOG_ERROR, "Interrupted exception waiting for reg change to complete {0}", new Object[]
                             {rsw.getRegState()}, null);
+                    reportTimeout();
                 }
             }
         }