You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2014/10/16 15:39:35 UTC

svn commit: r1632304 - in /felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl: BundleDependencyImpl.java Logger.java ResourceDependencyImpl.java ServiceDependencyImpl.java

Author: pderop
Date: Thu Oct 16 13:39:34 2014
New Revision: 1632304

URL: http://svn.apache.org/r1632304
Log:
FELIX-4673: Log any error thrown when trying to create a null object:

- any exceptions thrown when creating a null object are now logged using the log service.
- same for exceptions thrown when invoking any "propagate callback instances" or when trying to instantiate a default component implementation.
- Also, fixed DM Logger, which was not tracking log service.

Modified:
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/BundleDependencyImpl.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/Logger.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ResourceDependencyImpl.java
    felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceDependencyImpl.java

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/BundleDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/BundleDependencyImpl.java?rev=1632304&r1=1632303&r2=1632304&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/BundleDependencyImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/BundleDependencyImpl.java Thu Oct 16 13:39:34 2014
@@ -189,7 +189,7 @@ public class BundleDependencyImpl extend
                 catch (InvocationTargetException e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while invoking callback method", e.getCause());
                 }
-                catch (Exception e) {
+                catch (Throwable e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while trying to invoke callback method", e);
                 }
                 throw new IllegalStateException("Could not invoke callback");
@@ -221,7 +221,7 @@ public class BundleDependencyImpl extend
             try {
                 m_nullObject = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] { Bundle.class }, new DefaultNullObject()); 
             }
-            catch (Exception e) {
+            catch (Throwable e) {
                 m_logger.log(Logger.LOG_ERROR, "Could not create null object for Bundle.", e);
             }
         }

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/Logger.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/Logger.java?rev=1632304&r1=1632303&r2=1632304&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/Logger.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/Logger.java Thu Oct 16 13:39:34 2014
@@ -21,8 +21,10 @@ package org.apache.felix.dm.impl;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
+import org.apache.felix.dm.DependencyManager;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
+import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.InvalidSyntaxException;
 import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
@@ -60,13 +62,14 @@ public class Logger implements ServiceLi
     private Object[] m_logger = null;
 
     public Logger(BundleContext context) {
-//    	if ("true".equals(System.getProperty(LOG_SINGLE_CONTEXT))) {
-//    		m_context = FrameworkUtil.getBundle(DependencyManager.class).getBundleContext();
-//    	} else {
-//    		m_context = context;
-//    	}
-		m_context = context;
-//        startListeningForLogService();
+    	if ("true".equals(System.getProperty(LOG_SINGLE_CONTEXT))) {
+    		m_context = FrameworkUtil.getBundle(DependencyManager.class).getBundleContext();
+    	} else {
+    		m_context = context;
+    	}
+		if (m_context != null) {
+		    startListeningForLogService();
+		}
     }
 
     public final void log(int level, String msg) {

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ResourceDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ResourceDependencyImpl.java?rev=1632304&r1=1632303&r2=1632304&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ResourceDependencyImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ResourceDependencyImpl.java Thu Oct 16 13:39:34 2014
@@ -180,7 +180,7 @@ public class ResourceDependencyImpl exte
                 catch (InvocationTargetException e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while invoking callback method", e.getCause());
                 }
-                catch (Exception e) {
+                catch (Throwable e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while trying to invoke callback method", e);
                 }
                 throw new IllegalStateException("Could not invoke callback");

Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceDependencyImpl.java?rev=1632304&r1=1632303&r2=1632304&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceDependencyImpl.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager/src/org/apache/felix/dm/impl/ServiceDependencyImpl.java Thu Oct 16 13:39:34 2014
@@ -339,7 +339,7 @@ public class ServiceDependencyImpl exten
                                     {se.getReference(), se.getEvent()}, {se.getReference()}});
                 } catch (InvocationTargetException e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while invoking callback method", e.getCause());
-                } catch (Exception e) {
+                } catch (Throwable e) {
                     m_logger.log(LogService.LOG_WARNING, "Exception while trying to invoke callback method", e);
                 }
                 throw new IllegalStateException("Could not invoke callback");
@@ -418,8 +418,8 @@ public class ServiceDependencyImpl exten
                 m_nullObject = Proxy.newProxyInstance(trackedServiceName.getClassLoader(),
                     new Class[] { trackedServiceName }, new DefaultNullObject());
             }
-            catch (Exception e) {
-                m_logger.log(Logger.LOG_ERROR, "Could not create null object for " + trackedServiceName + ".", e);
+            catch (Throwable err) {
+                m_logger.log(Logger.LOG_ERROR, "Could not create null object for " + trackedServiceName + ".", err);
             }
         }
         return m_nullObject;
@@ -431,7 +431,7 @@ public class ServiceDependencyImpl exten
                 try {
                     m_defaultImplementationInstance = ((Class<?>) m_defaultImplementation).newInstance();
                 }
-                catch (Exception e) {
+                catch (Throwable e) {
                     m_logger.log(Logger.LOG_ERROR, "Could not create default implementation instance of class "
                         + m_defaultImplementation + ".", e);
                 }
@@ -475,7 +475,7 @@ public class ServiceDependencyImpl exten
                     {m_component, previous, current}, {m_component, previousReference, previous, currentReference, current},
                     {m_component, previousReference, previous, currentReference, current}}
 			);
-    	} catch (Exception e) {
+    	} catch (Throwable e) {
             m_logger.log(Logger.LOG_ERROR, "Could not invoke swap callback", e);
     	}
 	}