new fileWatcher method passes lock for changed file back to the caller.
[vamsas.git] / src / org / vamsas / test / simpleclient / ClientsFileTest.java
index 072a591..a149a16 100644 (file)
@@ -7,6 +7,7 @@ import java.util.Vector;
 import org.vamsas.client.ClientHandle;
 import org.vamsas.client.simpleclient.ClientsFile;
 import org.vamsas.client.simpleclient.FileWatcher;
+import org.vamsas.client.simpleclient.Lock;
 
 public class ClientsFileTest {
   private static Vector commands;
@@ -60,7 +61,7 @@ public class ClientsFileTest {
             ch=new ClientHandle(args[argc], args[argc+1]);
             ch.setClientUrn(args[argc+2]);
             argc+=3;
-            cfhand.removeClient(ch);
+            cfhand.removeClient(ch, null);
             System.out.println("Client removed (apparently)");
             break;
           case 2:
@@ -91,8 +92,10 @@ public class ClientsFileTest {
             // watch
             FileWatcher w=new FileWatcher(cf);
             while (cf.exists()) {
-              if (w.hasChanged()) {
-                ClientHandle[] cl = cfhand.retrieveClientList();
+              // get watcher's lock to ensure state change is fixed for retrieval
+              Lock chlock=w.getChangedState();
+              if (chlock!=null) {
+                ClientHandle[] cl = cfhand.retrieveClientList(chlock);
                 System.out.println("-- Watching "+cf.getName());
                 //while (w.hasChanged())
                 //  ;