diff --git a/java/src/net/sf/picard/reference/FastaSequenceIndexBuilder.java b/java/src/net/sf/picard/reference/FastaSequenceIndexBuilder.java index 45b190537..6f143ed89 100644 --- a/java/src/net/sf/picard/reference/FastaSequenceIndexBuilder.java +++ b/java/src/net/sf/picard/reference/FastaSequenceIndexBuilder.java @@ -212,7 +212,7 @@ public class FastaSequenceIndexBuilder { return sequenceIndex; } catch (IOException e) { - throw new UserException.CouldNotReadInputFile(fastaFile, String.format("Could not read fasta file"), e); + throw new UserException.CouldNotReadInputFile(fastaFile, "Could not read fasta file", e); } catch (Exception e) { throw new ReviewedStingException(e.getMessage(), e); diff --git a/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java b/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java index 2a1de19c1..fd1fdc4ea 100755 --- a/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java +++ b/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java @@ -240,7 +240,8 @@ public class GenomeAnalysisEngine extends AbstractGenomeAnalysisEngine { found = true; } if (!found) - throw new ArgumentException(String.format("Unable to find reference metadata (%s,%s)", required.name(), required.type())); + throw new ArgumentException(String.format("Walker requires reference metadata to be supplied named '%s' of type '%s', but this metadata was not provided. " + + "Please supply the specified metadata file.", required.name(), required.type().getSimpleName())); } // Check to see that no forbidden rods are present. diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/ReferenceDataSource.java b/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/ReferenceDataSource.java index cc15f6b01..90b7420c5 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/ReferenceDataSource.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/simpleDataSources/ReferenceDataSource.java @@ -30,6 +30,7 @@ import net.sf.picard.reference.FastaSequenceIndexBuilder; import net.sf.picard.sam.CreateSequenceDictionary; import net.sf.picard.reference.IndexedFastaSequenceFile; import net.sf.picard.reference.FastaSequenceIndex; +import org.broadinstitute.sting.utils.exceptions.StingException; import org.broadinstitute.sting.utils.exceptions.UserException; import org.broadinstitute.sting.utils.file.FSLockWithShared; import org.broadinstitute.sting.utils.file.FileSystemInabilityToLockException; @@ -53,13 +54,8 @@ public class ReferenceDataSource implements ReferenceDataSourceProgressListener public ReferenceDataSource(File fastaFile) { // does the fasta file exist? check that first... - if (!fastaFile.exists()) { - if (!fastaFile.getParentFile().exists()) - throw new UserException("The fasta file path you provided is invalid. The directory " + - fastaFile.getParentFile().getAbsolutePath() + " does not exist." ); - else - throw new UserException("The fasta file you provided does not exist."); - } + if (!fastaFile.exists()) + throw new UserException("The fasta file you specified (" + fastaFile.getAbsolutePath() + ") does not exist."); File indexFile = new File(fastaFile.getAbsolutePath() + ".fai"); File dictFile; @@ -89,6 +85,10 @@ public class ReferenceDataSource implements ReferenceDataSourceProgressListener logger.info("Unable to create write lock: " + ex.getMessage()); logger.info("Skipping index creation."); } + catch(UserException e) { + // Rethrow all user exceptions as-is; there should be more details in the UserException itself. + throw e; + } catch (Exception e) { // If lock creation succeeded, the failure must have been generating the index. // If lock creation failed, just skip over index creation entirely.