X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAlignFile.java;fp=src%2Fjalview%2Fio%2FAlignFile.java;h=b30fe3380b264ce8832fbae52291fe45bcfaaf04;hb=552acd59bb94adcb4b8f6012a0ecb64d05c799cd;hp=338c4b22afe9280da576915f925d9a5bbe3eb606;hpb=87018985bd993952fd848fd6b6a57d1a50aef484;p=jalview.git diff --git a/src/jalview/io/AlignFile.java b/src/jalview/io/AlignFile.java index 338c4b2..b30fe33 100755 --- a/src/jalview/io/AlignFile.java +++ b/src/jalview/io/AlignFile.java @@ -79,6 +79,8 @@ public abstract class AlignFile extends FileParse private boolean parseImmediately = true; + private boolean dataClosed = false; + /** * @return if doParse() was called at construction time */ @@ -164,6 +166,12 @@ public abstract class AlignFile extends FileParse public AlignFile(boolean parseImmediately, FileParse source) throws IOException { + this(parseImmediately, source, true); + } + + public AlignFile(boolean parseImmediately, FileParse source, + boolean closeData) throws IOException + { super(source); initData(); @@ -173,7 +181,7 @@ public abstract class AlignFile extends FileParse if (parseImmediately) { - doParse(); + doParse(closeData); } } @@ -184,6 +192,11 @@ public abstract class AlignFile extends FileParse */ public void doParse() throws IOException { + doParse(true); + } + + public void doParse(boolean closeData) throws IOException + { if (parseCalled) { throw new IOException( @@ -192,7 +205,11 @@ public abstract class AlignFile extends FileParse } parseCalled = true; parse(); - dataIn.close(); + if (closeData && !dataClosed) + { + dataIn.close(); + dataClosed = true; + } } /**