*/
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");
}
/**
*
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);
}
}
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 {
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,
ZipInputStream jstream=null;
Hashtable strmentries = null;
private void streamInit() {
- if (!stream) {
+ throw new Error("VamsasArchiveReader(Stream) Not implemented!");
+ /* if (!stream) {
log.debug("Skipping init for Jar Stream input.");
return;
}
if (jstream.available()==0)
log.warn("Can't read from JarInputStream (Locked stream!)");
ZipEntry entry=null;
+ long pos=0;
do {
- long pos = rfile.getFilePointer();
if ((entry=jstream.getNextEntry())!=null) {
if (strmentries.containsKey(entry.getName())) {
log.info("Only recording last of duplicate entries '"+entry.getName()+"'");
}
- strmentries.put(entry.getName(), new Long(pos));
+ strmentries.put(entry.getName(), new Long(pos++));
jstream.closeEntry();
}
} while (entry!=null);
catch (Exception e) {
log.warn("Exceptions during init!",e);
jstream=null;
- }
+ }*/
}
public VamsasArchiveReader(File vamsasfile) {
* @param vamsaslock
*/
public VamsasArchiveReader(Lock vamsaslock) {
- rfile = vamsaslock.rafile;
- stream = true;
- streamInit();
- if (jstream==null)
- throw new Error("Failed to open archive from Locked random access stream.");
+ // LATER: implement or remove
+ throw new Error("VamsasArchiveReading from locked IO stream not yet implemented.");
+ //rfile = vamsaslock.rafile;
+ //stream = true;
+ //streamInit();
+ //if (jstream==null)
+ // throw new Error("Failed to open archive from Locked random access stream.");
}
/**
return null;
}
try {
- jstream.reset();
+ jstream=null;
+ rfile.seek(0);
+ jstream = new ZipInputStream(new FileInputStream(rfile.getFD()));
ZipEntry entry = null;
long epos = entrypos.longValue();
do {