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);
}
}