From ad60300bee61f97c26a5e6f186b21093643b5e57 Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Fri, 12 Oct 2012 09:07:57 -0400 Subject: [PATCH] Catch malformed BAM files at the source since this is the largest class of errors in Tableau. --- .../sting/gatk/datasources/reads/SAMDataSource.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java index 8562ace98..bb788c89f 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java +++ b/public/java/src/org/broadinstitute/sting/gatk/datasources/reads/SAMDataSource.java @@ -1008,6 +1008,12 @@ public class SAMDataSource { } catch ( SAMFormatException e ) { throw new UserException.MalformedBAM(readerID.samFile, e.getMessage()); } + // Picard is throwing a RuntimeException here when BAMs are malformed with bad headers (and so look like SAM files). + // Let's keep this separate from the SAMFormatException (which ultimately derives from RuntimeException) case, + // just in case we want to change this behavior later. + catch ( RuntimeException e ) { + throw new UserException.MalformedBAM(readerID.samFile, e.getMessage()); + } reader.setSAMRecordFactory(factory); reader.enableFileSource(true); reader.setValidationStringency(validationStringency);