Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New development version.
[jaceP2P.git] / src / jaceP2P / UpdateRegisterThread.java
index 7b71d58..df8c036 100644 (file)
@@ -91,7 +91,20 @@ class UpdateRegisterThread extends Thread {
                                // System.out.println("avant update register");
 
                                // 1 l'appli vient de commencer
-                               stub.updateRegister(g, stubVoisin, requete);
+                               int ret = 1 ;
+                               int loop = 0 ;
+                               int LOOP_MAX = 3 ;
+                               
+                               while( ret == 1 && loop < LOOP_MAX )
+                               {
+                                       ret = stub.updateRegister(g, stubVoisin, requete);
+                                       loop++ ;
+                               }
+                               
+                               if( loop == LOOP_MAX )
+                               {
+                                       System.err.println( "Problem during register update!" ) ;
+                               } else {
                                // System.out.println("Envoi du registre a :"+index);
                                // g.viewAll();
                                // System.out.println("ancien registre");
@@ -100,11 +113,11 @@ class UpdateRegisterThread extends Thread {
                                // Register.Instance().viewAll();
                                // System.out.println(" after update register");
                                // if updateRegister worked, that means Node is Alive
-                               Node noeud = Register.Instance().getNodeOfStub(stub);
-                               if (noeud != null) {
-                                       noeud.setAliveFlag(true);
-                                       noeud.setAliveTime();
-
+                                       Node noeud = Register.Instance().getNodeOfStub(stub);
+                                       if (noeud != null) {
+                                               noeud.setAliveFlag(true);
+                                               noeud.setAliveTime();
+                                       }
                                }
                        } catch (Exception e) {
                                System.err.println(name + " ("