You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2013/04/22 08:44:33 UTC

svn commit: r1470397 - in /felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager: AbstractComponentManager.java ComponentContextImpl.java DependencyManager.java ImmediateComponentManager.java RegistrationManager.java

Author: djencks
Date: Mon Apr 22 06:44:33 2013
New Revision: 1470397

URL: http://svn.apache.org/r1470397
Log:
FELIX-4020 improve logging consistency

Modified:
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1470397&r1=1470396&r2=1470397&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Mon Apr 22 06:44:33 2013
@@ -187,6 +187,7 @@ public abstract class AbstractComponentM
         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 @@ public abstract class AbstractComponentM
         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 @@ public abstract class AbstractComponentM
                 catch ( InterruptedException e )
                 {
                     Thread.currentThread().interrupt();
+                    dumpThreads();
                 }
             }
         }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java?rev=1470397&r1=1470396&r2=1470397&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ComponentContextImpl.java Mon Apr 22 06:44:33 2013
@@ -188,6 +188,7 @@ public class ComponentContextImpl<S> imp
         catch ( InterruptedException e )
         {
             Thread.currentThread().interrupt();
+            getComponentManager().dumpThreads();
             return null;
         }
         return null;

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java?rev=1470397&r1=1470396&r2=1470397&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/DependencyManager.java Mon Apr 22 06:44:33 2013
@@ -1638,7 +1638,7 @@ public class DependencyManager<S, T> imp
             {
                 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 @@ public class DependencyManager<S, T> imp
             catch ( InterruptedException e )
             {
                 Thread.currentThread().interrupt();
+                m_componentManager.dumpThreads();
+                //ignore
             }
             if ( !getServiceObject( m_bindMethods.getUpdated(), refPair ))
             {
@@ -1699,7 +1701,7 @@ public class DependencyManager<S, T> imp
                     {
                         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 @@ public class DependencyManager<S, T> imp
                     catch ( InterruptedException e )
                     {
                         Thread.currentThread().interrupt();
+                        m_componentManager.dumpThreads();
                         //ignore
                     }
                 }
@@ -1724,7 +1727,9 @@ public class DependencyManager<S, T> imp
             }
             catch ( InterruptedException e )
             {
-                // TODO Auto-generated catch block
+                Thread.currentThread().interrupt();
+                m_componentManager.dumpThreads();
+                //ignore
             }
 
             if (refPair == null)

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java?rev=1470397&r1=1470396&r2=1470397&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/ImmediateComponentManager.java Mon Apr 22 06:44:33 2013
@@ -284,7 +284,7 @@ public class ImmediateComponentManager<S
             // 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 @@ public class ImmediateComponentManager<S
         else
         {
             componentContext.setImplementationAccessible( true );
+            m_circularReferences.remove();
+            //this may cause a getService as properties now match a filter.
             setServiceProperties( result );
         }
 
@@ -718,6 +720,8 @@ public class ImmediateComponentManager<S
     {
         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 @@ public class ImmediateComponentManager<S
         }
         finally
         {
+            //normally this will have been done after object becomes accessible.  This is double-checking.
             m_circularReferences.remove();
         }
     }

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java?rev=1470397&r1=1470396&r2=1470397&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/RegistrationManager.java Mon Apr 22 06:44:33 2013
@@ -181,6 +181,7 @@ abstract class RegistrationManager<T>
                     Thread.currentThread().interrupt();
                     log( LogService.LOG_ERROR, "Interrupted exception waiting for reg change to complete {0}", new Object[]
                             {rsw.getRegState()}, null);
+                    reportTimeout();
                 }
             }
         }