X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fuk%2Fac%2Fvamsas%2Fclient%2Fsimpleclient%2FVamsasArchive.java;h=c01ac26743d49604023aa3e6ac8fb2b8401dbd77;hb=f5306591821b5f6d4e381ff30b647bd149d51f43;hp=b6854cf6a8230f88e31261b7fe35694d4b312622;hpb=63b0b269c333a317ddd018c70a336c4cf839a2ee;p=vamsas.git diff --git a/src/uk/ac/vamsas/client/simpleclient/VamsasArchive.java b/src/uk/ac/vamsas/client/simpleclient/VamsasArchive.java index b6854cf..c01ac26 100644 --- a/src/uk/ac/vamsas/client/simpleclient/VamsasArchive.java +++ b/src/uk/ac/vamsas/client/simpleclient/VamsasArchive.java @@ -19,11 +19,8 @@ import java.util.jar.Manifest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.vamsas.objects.utils.AppDataReference; -import org.vamsas.objects.utils.DocumentStuff; -import org.vamsas.objects.utils.ProvenanceStuff; -import org.vamsas.objects.utils.document.VersionEntries; +import uk.ac.vamsas.client.AppDataOutputStream; import uk.ac.vamsas.client.ClientHandle; import uk.ac.vamsas.client.IVorbaIdFactory; import uk.ac.vamsas.client.SessionHandle; @@ -34,6 +31,10 @@ import uk.ac.vamsas.client.VorbaXmlBinder; import uk.ac.vamsas.objects.core.ApplicationData; import uk.ac.vamsas.objects.core.VAMSAS; import uk.ac.vamsas.objects.core.VamsasDocument; +import uk.ac.vamsas.objects.utils.AppDataReference; +import uk.ac.vamsas.objects.utils.DocumentStuff; +import uk.ac.vamsas.objects.utils.ProvenanceStuff; +import uk.ac.vamsas.objects.utils.document.VersionEntries; /** * Class for high-level io and Jar manipulation involved in creating @@ -138,7 +139,7 @@ public class VamsasArchive { /** * Output stream for archived data */ - JarOutputStream newarchive=null; + org.apache.tools.zip.ZipOutputStream newarchive=null; /** * JarEntries written to archive */ @@ -277,8 +278,12 @@ public class VamsasArchive { * @return true if entry was unique and was added. */ private boolean addEntry(String entry) { - if (entries!=null) + if (entries==null) entries=new Hashtable(); + if (log.isDebugEnabled()) + { + log.debug("validating '"+entry+"' in hash for "+this); + } if (entries.containsKey(entry)) return false; entries.put(entry, new Integer(entries.size())); @@ -291,7 +296,8 @@ public class VamsasArchive { * @throws IOException if entry name was invalid or a new entry could not be made on newarchive */ private boolean addValidEntry(String entry) throws IOException { - JarEntry je = new JarEntry(entry); + org.apache.tools.zip.ZipEntry je = new org.apache.tools.zip.ZipEntry(entry); + // je.setExsetExtra(null); if (!addEntry(entry)) return false; newarchive.flush(); @@ -307,7 +313,7 @@ public class VamsasArchive { if (!virginArchive) { makeBackup(); - donotdeletebackup=false; // external reference has been made. + donotdeletebackup=true; // external reference has been made. return ((original!=null) ? originalBackup : null); } return null; @@ -321,7 +327,7 @@ public class VamsasArchive { if (newarchive!=null) { try { newarchive.closeEntry(); - newarchive.putNextEntry(new JarEntry("deleted")); + newarchive.putNextEntry(new org.apache.tools.zip.ZipEntry("deleted")); newarchive.closeEntry(); newarchive.close(); @@ -566,8 +572,8 @@ public class VamsasArchive { if (!rchive.lockFile()) throw new IOException("Failed to get lock on file "+archive); // LATER: locked IO stream based access. - Manifest newmanifest = new Manifest(); - newarchive = new JarOutputStream(rchive.fileLock.getBufferedOutputStream(true), newmanifest); + // Manifest newmanifest = new Manifest(); + newarchive = new org.apache.tools.zip.ZipOutputStream(rchive.fileLock.getBufferedOutputStream(true));// , newmanifest); //newarchive = new JarOutputStream(new BufferedOutputStream(new java.io.FileOutputStream(archive))); entries = new Hashtable(); }