diff --git a/uk/ac/sanger/artemis/util/FileDocument.java b/uk/ac/sanger/artemis/util/FileDocument.java index ae050624847264ca1eee3a9a3107f088b902b45c..361396c6bd2b52c24ca58ef98059c5efb01d26f3 100644 --- a/uk/ac/sanger/artemis/util/FileDocument.java +++ b/uk/ac/sanger/artemis/util/FileDocument.java @@ -27,10 +27,6 @@ package uk.ac.sanger.artemis.util; import java.io.*; -import uk.ac.sanger.artemis.io.IndexedGFFDocumentEntry; - -import net.sf.samtools.util.BlockCompressedInputStream; - /** * Objects of this class are Documents created from a file. * @@ -116,9 +112,13 @@ public class FileDocument extends Document { if (read_file.getName ().endsWith (".gz")) { final BufferedInputStream ins = new BufferedInputStream(file_input_stream); - // BGZIP - if(BlockCompressedInputStream.isValidFile(ins)) - return new BlockCompressedInputStream(ins); + + if (! System.getProperty("java.version").startsWith("1.5.")) + { + if(DocumentBlockCompressed.isValidFile(ins)) // BGZIP + return DocumentBlockCompressed.getBlockCompressedInputStream(ins); + } + ins.close(); file_input_stream.close(); @@ -126,9 +126,8 @@ public class FileDocument extends Document { return new WorkingGZIPInputStream ( new ProgressInputStream (new FileInputStream (read_file), getProgressListeners ())); - } else { + } else return file_input_stream; - } } /** @@ -157,4 +156,21 @@ public class FileDocument extends Document { public File getFile () { return (File) getLocation (); } + +} + +/** + * Requires Java 1.6 + */ +class DocumentBlockCompressed +{ + protected static boolean isValidFile(BufferedInputStream ins) throws IOException + { + return net.sf.samtools.util.BlockCompressedInputStream.isValidFile(ins); + } + + protected static InputStream getBlockCompressedInputStream(BufferedInputStream ins) throws IOException + { + return new net.sf.samtools.util.BlockCompressedInputStream(ins); + } }