Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2009-05-15 19:50:17 +0000
committerslewis2009-05-15 19:50:17 +0000
commitef7c69ec6337e7729fb56d803d0333c393cce5e9 (patch)
tree481808db2541cfde71a49e1dfe11a478e63e9788 /providers
parentb53c78ed144f48723e9dd5f6204fa76e14cf5ddb (diff)
downloadorg.eclipse.ecf-ef7c69ec6337e7729fb56d803d0333c393cce5e9.tar.gz
org.eclipse.ecf-ef7c69ec6337e7729fb56d803d0333c393cce5e9.tar.xz
org.eclipse.ecf-ef7c69ec6337e7729fb56d803d0333c393cce5e9.zip
Fix for bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=276368
Diffstat (limited to 'providers')
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
index d21587473..7a09d9262 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
@@ -175,10 +175,6 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer
final List references = new ArrayList();
// Lookup from remote registrys...add to given references List
addReferencesFromRemoteRegistrys(idFilter, clazz, remoteFilter, references);
- // Add any from local registry
- synchronized (localRegistry) {
- addReferencesFromRegistry(clazz, remoteFilter, localRegistry, references);
- }
// If none found the first time we send a registration request and wait
if (references.size() == 0) {
AddRegistrationRequest first = null;
@@ -212,6 +208,15 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer
}
}
+ ID localContainerID = getLocalContainerID();
+ // Only look in local remote service registry if idFilter is null OR the idFilter
+ // contains the local container ID
+ if (idFilter == null || Arrays.asList(idFilter).contains(localContainerID)) {
+ synchronized (localRegistry) {
+ // Add any from local registry
+ addReferencesFromRegistry(clazz, remoteFilter, localRegistry, references);
+ }
+ }
final IRemoteServiceReference[] result = (IRemoteServiceReference[]) references.toArray(new IRemoteServiceReference[references.size()]);
Trace.exiting(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_EXITING, this.getClass(), "getRemoteServiceReferences", result); //$NON-NLS-1$
return (result.length == 0) ? null : result;

Back to the top