Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2004-12-29 22:15:19 +0000
committerslewis2004-12-29 22:15:19 +0000
commit699782445606eb0f447da3ce045910b31dccfa6e (patch)
tree64bc4b2d20574dd7929ff15c4e8bf789f6ca1a17
parentd8477ff461a9936f3eb1499b331a071cde871a4a (diff)
downloadorg.eclipse.ecf-699782445606eb0f447da3ce045910b31dccfa6e.tar.gz
org.eclipse.ecf-699782445606eb0f447da3ce045910b31dccfa6e.tar.xz
org.eclipse.ecf-699782445606eb0f447da3ce045910b31dccfa6e.zip
Added code to generic container implementation dispose(long time). Also created
test case for doing dispose for client and server
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/ClientSOContainer.java12
-rw-r--r--framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java13
2 files changed, 18 insertions, 7 deletions
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/ClientSOContainer.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/ClientSOContainer.java
index 679f5d375..b892be6ff 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/ClientSOContainer.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/ClientSOContainer.java
@@ -35,6 +35,18 @@ public abstract class ClientSOContainer extends SOContainer {
connectionState = UNCONNECTED;
connectLock = new Lock();
}
+ public void dispose(long wait) {
+ synchronized (connectLock) {
+ isClosing = true;
+ if (isConnected()) {
+ this.leaveGroup();
+ } else if (isConnecting()) {
+ killConnection(connection);
+ }
+ remoteServerID = null;
+ }
+ super.dispose(wait);
+ }
public final boolean isGroupServer() {
return false;
}
diff --git a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
index fe39e8938..85ad8b1c1 100644
--- a/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
+++ b/framework/bundles/org.eclipse.ecf.provider/src/org/eclipse/ecf/provider/generic/SOContainer.java
@@ -486,17 +486,16 @@ public abstract class SOContainer implements ISharedObjectContainer {
// XXX Notify listeners that we're going away
// Clear group manager
groupManager.removeAllMembers();
+ groupManager = null;
// Clear shared object manager
sharedObjectManager.dispose();
- try {
- synchronized (this) {
- wait(waittime);
- }
- } catch (InterruptedException e) {
-
- }
+ sharedObjectManager = null;
sharedObjectThreadGroup.interrupt();
+ sharedObjectThreadGroup = null;
loadingThreadGroup.interrupt();
+ loadingThreadGroup = null;
+ listeners.clear();
+ listeners = null;
}
/*

Back to the top