changeset 517:80e461aa10e9 dispose

bug fix
author sugi
date Thu, 22 Jan 2015 11:43:34 +0900
parents a7f140f4bcb1
children fc313323c53b
files src/main/java/alice/topology/fix/FixTopology.java src/main/java/alice/topology/manager/CheckComingHost.java src/main/java/alice/topology/manager/CreateTreeTopology.java src/main/java/alice/topology/node/IncomingConnectionInfo.java
diffstat 4 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/alice/topology/fix/FixTopology.java	Wed Jan 21 16:56:31 2015 +0900
+++ b/src/main/java/alice/topology/fix/FixTopology.java	Thu Jan 22 11:43:34 2015 +0900
@@ -6,6 +6,7 @@
 import alice.codesegment.CodeSegment;
 import alice.daemon.ConnectionInfo;
 import alice.datasegment.CommandType;
+import alice.datasegment.DataSegment;
 import alice.datasegment.Receiver;
 import alice.topology.HostMessage;
 import alice.topology.manager.Parent;
@@ -46,6 +47,7 @@
         }
 
         if (lostNode!=null && lostNode.isAlive()) {
+            DataSegment.remove(lostNodeName);
             // change state not Alive
             lostNode.alive = false;
             // get lastJoinedNode
--- a/src/main/java/alice/topology/manager/CheckComingHost.java	Wed Jan 21 16:56:31 2015 +0900
+++ b/src/main/java/alice/topology/manager/CheckComingHost.java	Thu Jan 22 11:43:34 2015 +0900
@@ -47,6 +47,7 @@
                 new SearchHostName();
             }
         } else {
+            host.cookie = null;
             ods.put("orderHash", "order");
             ods.put("newHost", host);
         }
--- a/src/main/java/alice/topology/manager/CreateTreeTopology.java	Wed Jan 21 16:56:31 2015 +0900
+++ b/src/main/java/alice/topology/manager/CreateTreeTopology.java	Thu Jan 22 11:43:34 2015 +0900
@@ -31,7 +31,6 @@
     @Override
     public void run() {
         String cookie = info3.asString();
-        System.out.println(cookie);
         HostMessage host = info.asClass(HostMessage.class);
         int comingHostCount = info1.asInteger();
         ParentManager manager = info6.asClass(ParentManager.class);
@@ -40,11 +39,19 @@
         HashMap<String, String> absCookieTable = info4.asClass(HashMap.class);
 
         String nodeName = null;
+        int count = comingHostCount;
+        boolean reconnect = false;
         if (host.absName!=null) {
+            System.out.println(host.cookie);
+            cookie = host.cookie;
             nodeName = host.absName;
+            System.out.println(nodeName);
+            reconnect = true;
         } else {
+            System.out.println(cookie);
             nodeName = "node"+comingHostCount;
             absCookieTable.put(cookie, nodeName);
+            count++;
         }
         // Manager connect to Node
         DataSegment.connect(nodeName, nodeName, host.name, host.port);
@@ -52,7 +59,7 @@
         ods.put(nodeName, "cookie", cookie);
 
         ods.put(info4.key, absCookieTable);
-        ods.put(info1.key, comingHostCount+1);
+        ods.put(info1.key, count);
         host.alive = true;
         nameTable.put(nodeName, host);
         manager.register(nodeName);
@@ -67,7 +74,8 @@
             newHost.absName = parentAbsName;
             newHost.remoteAbsName = nodeName; // address
             ods.put(newHost.remoteAbsName, newHost);
-
+            if (reconnect)
+                ods.put(newHost.remoteAbsName, newHost);
             ods.put("nodeInfo", newHost);
             new RecodeTopology();
 
--- a/src/main/java/alice/topology/node/IncomingConnectionInfo.java	Wed Jan 21 16:56:31 2015 +0900
+++ b/src/main/java/alice/topology/node/IncomingConnectionInfo.java	Thu Jan 22 11:43:34 2015 +0900
@@ -33,9 +33,7 @@
                 count++;
                 ods.put("connection"+hostInfo.connectionName, hostInfo.connectionName);
                 new PrepareToAddList(hostInfo.connectionName);
-
             }
-
         }
 
         IncomingConnectionInfo cs = new IncomingConnectionInfo(absName, count);