X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fuk%2Fac%2Fvamsas%2Fclient%2Fsimpleclient%2FVamsasArchiveReader.java;h=7f9a0086c4d289d5137a925cf241942cd9919df1;hb=bae4dff034be3e157850f6e8888e25d694e3b21a;hp=819be184e8ed83397d6ad5d4aa829159030476e5;hpb=f5e6905752f20e5f77d5ada2a216c3cb2b50907d;p=vamsas.git diff --git a/src/uk/ac/vamsas/client/simpleclient/VamsasArchiveReader.java b/src/uk/ac/vamsas/client/simpleclient/VamsasArchiveReader.java index 819be18..7f9a008 100644 --- a/src/uk/ac/vamsas/client/simpleclient/VamsasArchiveReader.java +++ b/src/uk/ac/vamsas/client/simpleclient/VamsasArchiveReader.java @@ -30,6 +30,8 @@ import uk.ac.vamsas.objects.utils.document.VersionEntries; * */ public class VamsasArchiveReader { + private static final int JARFILE_OPEN_RETRIES = 50; + private static final int JARFILE_OPEN_RETRYWAIT = 1; private static Log log = LogFactory.getLog(VamsasArchiveReader.class); JarFile jfile=null; boolean stream=false; // true if we are seeking on the stream. @@ -70,16 +72,27 @@ public class VamsasArchiveReader { public VamsasArchiveReader(File vamsasfile) { jfile=null; + int retries=JARFILE_OPEN_RETRIES; + Exception ex=null; if (vamsasfile.exists()) { + while (jfile==null && --retries>0) + { try { jfile=new JarFile(vamsasfile); } catch (Exception e) { - log.debug("non-serious? couldn't open new JarFile on "+vamsasfile,e); + ex = e; jfile=null; + try { + Thread.sleep(JARFILE_OPEN_RETRYWAIT); + } catch (Exception w) {}; + } + } + if (jfile==null && ex!=null) + { + log.debug("non-serious? Exceptions when opening JarFile at "+vamsasfile,ex); } } - } /** * in an ideal world - this constructor will create a reader object