Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction of some bugs and performance enhancement.
[jaceP2P.git] / src / jaceP2P / JaceSuperNodeServer.java
index 8bee6cf..b279e30 100644 (file)
@@ -3,7 +3,6 @@ package jaceP2P;
 import java.rmi.RemoteException;
 import java.rmi.server.UnicastRemoteObject;
 import java.util.ArrayList;
-import java.util.Vector;
 
 import and.Mapping.Algo;
 import and.Mapping.DefaultMapping;
@@ -40,12 +39,12 @@ public class JaceSuperNodeServer extends UnicastRemoteObject implements
                return beat;
        }
 
-       public Vector<?> sendStub(String IP, int port, JaceSuperNodeInterface stub)
+       public ArrayList<Object> sendStub(String IP, int port, JaceSuperNodeInterface stub)
                        throws RemoteException {
                SuperNodeListe.Instance().addStubOf(IP, port, stub);
                System.out.println("Added new superNode (" + IP
                                + ") to list and return List");
-               return SuperNodeListe.Instance().getListe();
+               return SuperNodeListe.Instance().getListe() ;
        }
 
        public void updateCountNode(String IP, int nb) throws RemoteException {
@@ -55,17 +54,17 @@ public class JaceSuperNodeServer extends UnicastRemoteObject implements
                SuperNodeListe.Instance().viewAll();
        }
 
-       public void sendSurplus(Vector<?> nodes, ArrayList<GNode> _gnodes) throws RemoteException {
+       public void sendSurplus(ArrayList<Node> nodes, ArrayList<GNode> _gnodes) throws RemoteException {
                System.out.println("Recieved " + nodes.size() + " nodes");
 
                for (int i = 0; i < nodes.size(); i++) {
-                       Register.Instance().getListe().add((Node) nodes.elementAt(i));
+                       Register.Instance().getListe().add((Node) nodes.get(i));
 
                        System.out.println("Adding "
-                                       + ((Node) nodes.elementAt(i)).getName());
+                                       + ((Node) nodes.get(i)).getName());
 
                        try {
-                               ((Node) nodes.elementAt(i)).getStub().updateHeart(
+                               ((Node) nodes.get(i)).getStub().updateHeart(
                                                LocalHost.Instance().getSuperNodeStub());
                                int index = SuperNodeListe.Instance().existSuperNode(
                                                LocalHost.Instance().getIP());
@@ -317,7 +316,7 @@ public class JaceSuperNodeServer extends UnicastRemoteObject implements
                        ((Maheve) al).setNbSave((int)paramAlgo);
                        break ;
                default:
-                       al = new DefaultMapping( graph, grid, gnodes ) ;
+                       al = new DefaultMapping( graph, grid ) ;
                }
 
                if (al != null) 
@@ -465,6 +464,14 @@ public class JaceSuperNodeServer extends UnicastRemoteObject implements
                                                algos.get( i ).getGrid().removeGNode( dead ) ;
                                                Register.Instance().removeNodeOfName( dead.getName() ) ;
                                                SuperNodeListe.Instance().removeGNode( dead, _mode, _spawnerIp ) ;
+                                               
+                                               // trying to reboot the node
+                                               try {
+                                                       _n.getStub().suicide2( "Reboot!" ) ;
+                                               } catch( Exception e ) {
+                                                       System.err.println( "(SN) Unable to reboot the node:" ) ;
+                                                       e.printStackTrace() ;
+                                               }
                                        }
                                } else {
                                        System.err.println( "The dead node signaled does not exist!" ) ;
@@ -900,8 +907,7 @@ public class JaceSuperNodeServer extends UnicastRemoteObject implements
                }
                
                return ret ;
-       }
-       
+       }       
        
 }