diff options
author | mkuppe | 2009-02-25 12:58:30 +0000 |
---|---|---|
committer | mkuppe | 2009-02-25 12:58:30 +0000 |
commit | a768b344dd6448a0ece7ac6e29c7a49438f9e996 (patch) | |
tree | 05e7efd0a4d05816fdab53e1a05382a8c65b49e1 /providers/bundles/org.eclipse.ecf.provider.discovery | |
parent | 0c5a97b8160620bcb5ce12097034263671f5c893 (diff) | |
download | org.eclipse.ecf-a768b344dd6448a0ece7ac6e29c7a49438f9e996.tar.gz org.eclipse.ecf-a768b344dd6448a0ece7ac6e29c7a49438f9e996.tar.xz org.eclipse.ecf-a768b344dd6448a0ece7ac6e29c7a49438f9e996.zip |
NEW - bug 266118: [Discover][Composite] Test listener received more than expected discovery event expected:<2> but was:<1>
https://bugs.eclipse.org/bugs/show_bug.cgi?id=266118
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.discovery')
-rw-r--r-- | providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java index 3db5ad2ba..3b4dd1f5c 100644 --- a/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java +++ b/providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java @@ -325,9 +325,21 @@ public class CompositeDiscoveryContainer extends AbstractDiscoveryContainerAdapt * @see java.util.List#add(java.lang.Object) */ public boolean addContainer(final Object object) { + // connect the new container if necessary and register ourself as listeners + IContainer iContainer = (IContainer) object; + if (iContainer.getConnectedID() == null) { + try { + iContainer.connect(targetID, null); + } catch (ContainerConnectException e) { + // we eat the exception here + Trace.catching(Activator.PLUGIN_ID, METHODS_CATCHING, this.getClass(), "addContainer(Object)", e); //$NON-NLS-1$ + } + } + final IDiscoveryContainerAdapter idca = (IDiscoveryContainerAdapter) object; + idca.addServiceListener(ccsl); + idca.addServiceTypeListener(ccstl); // register previously registered with the new IDS synchronized (registeredServices) { - final IDiscoveryContainerAdapter idca = (IDiscoveryContainerAdapter) object; for (final Iterator itr = registeredServices.iterator(); itr.hasNext();) { final IServiceInfo serviceInfo = (IServiceInfo) itr.next(); try { @@ -351,6 +363,9 @@ public class CompositeDiscoveryContainer extends AbstractDiscoveryContainerAdapt * @see java.util.List#remove(java.lang.Object) */ public boolean removeContainer(final Object object) { + final IDiscoveryContainerAdapter idca = (IDiscoveryContainerAdapter) object; + idca.removeServiceListener(ccsl); + idca.removeServiceTypeListener(ccstl); synchronized (containers) { Trace.trace(Activator.PLUGIN_ID, METHODS_TRACING, this.getClass(), "removeContainer(Object)", "removeContainer " //$NON-NLS-1$ //$NON-NLS-2$ + object.toString()); |