diff options
author | slewis | 2013-05-15 23:53:57 +0000 |
---|---|---|
committer | slewis | 2013-05-15 23:53:57 +0000 |
commit | 9322f58d7ca86e04043bf25b18973aa59d483304 (patch) | |
tree | b0182080788e0d5690e503788147afae9beb41d9 /osgi | |
parent | e7d92f2b1dd272bf1ff1a7204ada65d429afbe27 (diff) | |
download | org.eclipse.ecf-9322f58d7ca86e04043bf25b18973aa59d483304.tar.gz org.eclipse.ecf-9322f58d7ca86e04043bf25b18973aa59d483304.tar.xz org.eclipse.ecf-9322f58d7ca86e04043bf25b18973aa59d483304.zip |
Fix for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=408185
Diffstat (limited to 'osgi')
-rw-r--r-- | osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java index 7a55b2b27..092aeb12e 100644 --- a/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java +++ b/osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/osgi/services/remoteserviceadmin/RemoteServiceAdmin.java @@ -178,7 +178,8 @@ public class RemoteServiceAdmin implements } eventListenerHookRegistration = getRSABundle().getBundleContext() - .registerService(EventListenerHook.class.getName(), new RSAEventListenerHook(), null); + .registerService(EventListenerHook.class.getName(), + new RSAEventListenerHook(), null); } private void handleServiceUnregistering(ServiceReference serviceReference) { @@ -1805,7 +1806,7 @@ public class RemoteServiceAdmin implements // version comparator service Version remoteVersion = interfaceVersions.get(className); Version localVersion = getPackageVersionViaRequestingBundle( - packageName, bundle); + packageName, bundle, remoteVersion); if (comparePackageVersions(packageName, remoteVersion, localVersion)) { logError("verifyServiceInterfaceVersionsForProxy", //$NON-NLS-1$ "Failed version check for proxy creation. clientBundle=" //$NON-NLS-1$ @@ -1869,7 +1870,7 @@ public class RemoteServiceAdmin implements } private Version getPackageVersionViaRequestingBundle(String packageName, - Bundle requestingBundle) { + Bundle requestingBundle, Version remoteVersion) { Version result = null; // First check the requesting bundle for the desired export package // capability @@ -1879,11 +1880,15 @@ public class RemoteServiceAdmin implements List<BundleCapability> requestingBundleCapabilities = requestingBundleRevision .getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE); for (BundleCapability requestingBundleCapability : requestingBundleCapabilities) { - Version version = getVersionForMatchingCapability(packageName, - requestingBundleCapability); + Version candidate = getVersionForMatchingCapability( + packageName, requestingBundleCapability); // If found, set our result - if (version != null) - result = version; + if (candidate != null) { + if (remoteVersion != null + && candidate.equals(remoteVersion)) + return candidate; + result = candidate; + } } } // If not found in requestingBundle export package, then |