felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rickh...@apache.org
Subject svn commit: r549491 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
Date Thu, 21 Jun 2007 14:25:02 GMT
Author: rickhall
Date: Thu Jun 21 07:25:01 2007
New Revision: 549491

URL: http://svn.apache.org/viewvc?view=rev&rev=549491
Log:
Modified isAssignableTo() to check if the provider bundle is the exporter
of the requestor bundle's wire.

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java?view=diff&rev=549491&r1=549490&r2=549491
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
(original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceReferenceImpl.java
Thu Jun 21 07:25:01 2007
@@ -150,20 +150,26 @@
         // object uses the same class as the requester.
         else if (providerWire == null)
         {
-            try
+            // If the provider is not the exporter of the requester's package,
+            // then try to use the service registration to see if the requester's
+            // class is accessible.
+            if (!((BundleImpl) m_bundle).getInfo().hasModule(requesterWire.getExporter()))
             {
-                // Load the class from the requesting bundle.
-                Class requestClass =
-                    ((BundleImpl) requester).getInfo().getCurrentModule().getClass(className);
-                // Get the service registration and ask it to check
-                // if the service object is assignable to the requesting
-                // bundle's class.
-                allow = getServiceRegistration().isClassAccessible(requestClass);
-            }
-            catch (Exception ex)
-            {
-                // This should not happen, filter to be safe.
-                allow = false;
+                try
+                {
+                    // Load the class from the requesting bundle.
+                    Class requestClass =
+                        ((BundleImpl) requester).getInfo().getCurrentModule().getClass(className);
+                    // Get the service registration and ask it to check
+                    // if the service object is assignable to the requesting
+                    // bundle's class.
+                    allow = getServiceRegistration().isClassAccessible(requestClass);
+                }
+                catch (Exception ex)
+                {
+                    // This should not happen, filter to be safe.
+                    allow = false;
+                }
             }
         }
         // Case 3: Include service reference if the wires have the



Mime
View raw message