fixed (hopefully) locking/read problems in test.simpleclient.VamsasArchive/Watcher...
[vamsas.git] / src / org / vamsas / client / simpleclient / VamsasArchive.java
index 6e8138b..d769a5c 100644 (file)
@@ -196,6 +196,7 @@ public class VamsasArchive {
    */
   public VamsasArchive(VamsasFile archive, boolean vamsasdocument, boolean overwrite) throws IOException {
     this(archive.sessionFile, overwrite, vamsasdocument, archive);
+    log.debug("using non-functional lock-IO stream jar access constructor");
   }
   /**
    * 
@@ -256,7 +257,8 @@ public class VamsasArchive {
         odoclock = new SessionFile(original);
       odoclock.lockFile();
       if (odoc == null) 
-        odoc = new VamsasArchiveReader(odoclock.fileLock);
+        odoc = new VamsasArchiveReader(original);
+        // this constructor is not implemented yet odoc = new VamsasArchiveReader(odoclock.fileLock);
     }
   }
   
@@ -373,7 +375,7 @@ public class VamsasArchive {
       newarchive.closeEntry();
       if (!isDocumentWritten())
         log.warn("Premature closure of archive '"+archive.getAbsolutePath()+"': No document has been written.");
-      newarchive.finish();
+      newarchive.close(); // use newarchive.finish(); for a stream IO
       updateOriginal();
       closeAndReset();
     } else {
@@ -552,8 +554,10 @@ public class VamsasArchive {
       rchive = new SessionFile(archive);
     if (!rchive.lockFile()) 
       throw new IOException("Failed to get lock on file "+archive);
-    Manifest newmanifest = new Manifest();
-    newarchive = new JarOutputStream(rchive.fileLock.getBufferedOutputStream(true), newmanifest);  
+    // LATER: locked IO stream based access.
+    //Manifest newmanifest = new Manifest();
+    //newarchive = new JarOutputStream(rchive.fileLock.getBufferedOutputStream(true), newmanifest);  
+    newarchive = new JarOutputStream(new BufferedOutputStream(new java.io.FileOutputStream(archive)));  
     entries = new Hashtable();
   }
   public void putVamsasDocument(VamsasDocument doc) throws IOException,