You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2009/01/27 15:55:29 UTC
svn commit: r738105 - in
/felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager:
ServiceDependency.java ServiceImpl.java
Author: marrs
Date: Tue Jan 27 14:55:29 2009
New Revision: 738105
URL: http://svn.apache.org/viewvc?rev=738105&view=rev
Log:
Added two patches suggested by Pierre and Arjun to fix an issue with service dependencies that use a filter, where the filter can return services that are of a different type than the specified type. Also added some logging.
Modified:
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
Modified: felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java?rev=738105&r1=738104&r2=738105&view=diff
==============================================================================
--- felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java (original)
+++ felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceDependency.java Tue Jan 27 14:55:29 2009
@@ -173,6 +173,11 @@
public Object addingService(ServiceReference ref) {
Object service = m_context.getService(ref);
+ // first check to make sure the service is actually an instance of our service
+ if (!m_trackedServiceName.isInstance(service)) {
+ return null;
+ }
+
// we remember these for future reference, needed for required service callbacks
m_reference = ref;
m_serviceInstance = service;
Modified: felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java?rev=738105&r1=738104&r2=738105&view=diff
==============================================================================
--- felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java (original)
+++ felix/trunk/dependencymanager/src/main/java/org/apache/felix/dependencymanager/ServiceImpl.java Tue Jan 27 14:55:29 2009
@@ -630,6 +630,7 @@
wrapper.setServiceRegistration(registration);
}
catch (IllegalArgumentException iae) {
+ m_logger.log(Logger.LOG_ERROR, "Could not register service " + m_serviceInstance, iae);
// set the registration to an illegal state object, which will make all invocations on this
// wrapper fail with an ISE (which also occurs when the SR becomes invalid)
wrapper.setIllegalState();