for (int i = 0; i < ag.size(); i++) {
reg.addNode((Node) ag.get(i).getNode());
- gnodes.remove(ag.get(i));
- Register.Instance().removeNode((Node) ag.get(i).getNode());
+ delGNodeFromList( (Node) ag.get(i).getNode() ) ;
+// gnodes.remove(ag.get(i));
+// Register.Instance().removeNode((Node) ag.get(i).getNode());
+ }
+
+
+ /** Searching extra nodes if any **/
+ if( nbNoeuds > nbTasks )
+ {
+ int nb = nbNoeuds - nbTasks ;
+ GNode sup = null ;
+
+ for( int i = 0 ; i < nb ; i ++ )
+ {
+ sup = al.getOtherGNode( gnodes ) ;
+ reg.addNodeBeg( (Node) sup.getNode() ) ;
+ delGNodeFromList( (Node) sup.getNode() ) ;
+ }
}
authorized = false ;
if( ((Node)gnodes.get(i).getNode()).getId() == _n.getId() )
{
removedGNode = gnodes.remove( i ) ;
+ Register.Instance().removeNodeOfName( removedGNode.getName() ) ;
break ;
}
}
{
if( _g != null )
{
- workingOnGnodes() ;
+ boolean free = false ;
+
+ if( ! operating )
+ {
+ workingOnGnodes() ;
+ free = true ;
+ }
for( int i = 0 ; i < gnodes.size() ; i++ )
{
}
}
- operating = false ;
+ if( free )
+ operating = false ;
}
}