Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkuppe2009-02-25 12:58:30 +0000
committermkuppe2009-02-25 12:58:30 +0000
commita768b344dd6448a0ece7ac6e29c7a49438f9e996 (patch)
tree05e7efd0a4d05816fdab53e1a05382a8c65b49e1
parent0c5a97b8160620bcb5ce12097034263671f5c893 (diff)
downloadorg.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
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.discovery/src/org/eclipse/ecf/provider/discovery/CompositeDiscoveryContainer.java17
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());

Back to the top