changeset 483:86c45738dd9e dispose

success fix topology ..... may be
author sugi
date Fri, 05 Dec 2014 21:24:37 +0900
parents 8227a2fd5a55
children c00437e91db0
files src/main/java/alice/datasegment/DataSegmentManager.java src/main/java/alice/datasegment/LocalDataSegmentManager.java src/main/java/alice/datasegment/RemoteDataSegmentManager.java src/main/java/alice/topology/manager/keeparive/ListManager.java src/main/java/alice/topology/node/DeleteConnection.java src/main/java/alice/topology/node/ReceiveCloseMessage.java
diffstat 6 files changed, 34 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/alice/datasegment/DataSegmentManager.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/datasegment/DataSegmentManager.java	Fri Dec 05 21:24:37 2014 +0900
@@ -62,5 +62,6 @@
 
     public abstract void ping(String returnKey);
     public abstract void response(String returnKey);
+    public abstract void setSendError(boolean b);
 
 }
--- a/src/main/java/alice/datasegment/LocalDataSegmentManager.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/datasegment/LocalDataSegmentManager.java	Fri Dec 05 21:24:37 2014 +0900
@@ -149,4 +149,9 @@
 
     }
 
+    @Override
+    public void setSendError(boolean b) {
+
+    }
+
 }
--- a/src/main/java/alice/datasegment/RemoteDataSegmentManager.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/datasegment/RemoteDataSegmentManager.java	Fri Dec 05 21:24:37 2014 +0900
@@ -150,13 +150,15 @@
     public void shutdown() {
         connection.close();
         LinkedBlockingQueue<Command> queue = connection.sendQueue;
-        if (!queue.isEmpty()) {
-            queue.clear();
-        }
+        if (!queue.isEmpty()) queue.clear();
+        if (DataSegment.contains(connection.name))
+            DataSegment.remove(connection.name);
+    }
 
-        if (DataSegment.contains(connection.name)) {
-            DataSegment.remove(connection.name);
-        }
+    @Override
+    public void setSendError(boolean b) {
+        connection.sendManager = b;
+
     }
 
 }
--- a/src/main/java/alice/topology/manager/keeparive/ListManager.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/ListManager.java	Fri Dec 05 21:24:37 2014 +0900
@@ -83,4 +83,10 @@
         }
         System.out.println();
     }
+
+    public void deleteAll(String name) {
+        TaskInfo task = new TaskInfo(TaskType.CLOSE);
+        task.setInfo(name, 0);
+        while(deleteTask(task));
+    }
 }
--- a/src/main/java/alice/topology/node/DeleteConnection.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/topology/node/DeleteConnection.java	Fri Dec 05 21:24:37 2014 +0900
@@ -6,13 +6,16 @@
 import alice.datasegment.CommandType;
 import alice.datasegment.DataSegment;
 import alice.datasegment.Receiver;
+import alice.topology.manager.keeparive.ListManager;
 
 public class DeleteConnection extends CloseEventCodeSegment {
 
     private Receiver info = ids.create(CommandType.TAKE);
+    private Receiver info1 = ids.create(CommandType.TAKE);
 
     public DeleteConnection() {
         info.setKey("_CLIST");
+        info1.setKey("_WAITINGLIST");
     }
 
     @Override
@@ -26,7 +29,10 @@
             if (DataSegment.contains(name))
                 DataSegment.get(name).shutdown();
         }
+        ListManager manager = info1.asClass(ListManager.class);
+        manager.deleteAll(name);
         ods.update(info.key, list);
+        ods.update(info1.key, manager);
     }
 
 }
--- a/src/main/java/alice/topology/node/ReceiveCloseMessage.java	Fri Dec 05 17:22:33 2014 +0900
+++ b/src/main/java/alice/topology/node/ReceiveCloseMessage.java	Fri Dec 05 21:24:37 2014 +0900
@@ -16,8 +16,14 @@
     @Override
     public void run() {
         String managerKey = info.asString();
-        if (DataSegment.contains(managerKey))
-            DataSegment.get(managerKey).close();
+        if (DataSegment.contains(managerKey)) {
+            DataSegment.get(managerKey).setSendError(false);
+            DataSegment.get(managerKey).shutdown();
+        } else {
+
+        }
+
+
         new ReceiveCloseMessage();
     }