diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java index 6d7631a13..90e8a2c3a 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/AllLocusView.java @@ -1,5 +1,6 @@ package org.broadinstitute.sting.gatk.datasources.providers; +import java.util.List; import java.util.NoSuchElementException; import java.util.ArrayList; import java.util.Collections; @@ -97,7 +98,9 @@ public class AllLocusView extends LocusView { * @param site Site at which to create the blank locus context. * @return empty context. */ - private AlignmentContext createEmptyLocus( GenomeLoc site ) { - return new AlignmentContext(site,new ReadBackedPileupImpl(site,new ArrayList(), new ArrayList())); + private final static List EMPTY_PILEUP_READS = Collections.emptyList(); + private final static List EMPTY_PILEUP_OFFSETS = Collections.emptyList(); + private AlignmentContext createEmptyLocus( GenomeLoc site ) { + return new AlignmentContext(site,new ReadBackedPileupImpl(site, EMPTY_PILEUP_READS, EMPTY_PILEUP_OFFSETS)); } } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java index b4b1d7f8a..a91e169c1 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java @@ -50,8 +50,8 @@ public class ManagingReferenceOrderedView implements ReferenceOrderedView { * @return A tracker containing information about this locus. */ public RefMetaDataTracker getReferenceOrderedDataAtLocus( GenomeLoc loc ) { - RefMetaDataTracker tracks = new RefMetaDataTracker(); - for (ReferenceOrderedDataState state: states ) + RefMetaDataTracker tracks = new RefMetaDataTracker(states.size()); + for ( ReferenceOrderedDataState state: states ) tracks.bind( state.dataSource.getName(), state.iterator.seekForward(loc) ); return tracks; } diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java b/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java index e2ce6b331..feed2ab85 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java @@ -138,7 +138,7 @@ public class RodLocusView extends LocusView implements ReferenceOrderedView { } private RefMetaDataTracker createTracker( Collection allTracksHere ) { - RefMetaDataTracker t = new RefMetaDataTracker(); + RefMetaDataTracker t = new RefMetaDataTracker(allTracksHere.size()); for ( RODRecordList track : allTracksHere ) { if ( ! t.hasROD(track.getName()) ) t.bind(track.getName(), track); diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java b/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java index 48f3354d2..d5063d643 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/RefMetaDataTracker.java @@ -28,9 +28,15 @@ Genotype * Traversal calls tracker.bind(name, RMD) for each RMDs in RMDs * Time: 3:05:23 PM */ public class RefMetaDataTracker { - final HashMap map = new HashMap(); + final Map map; protected static Logger logger = Logger.getLogger(RefMetaDataTracker.class); + public RefMetaDataTracker(int nBindings) { + if ( nBindings == 0 ) + map = Collections.emptyMap(); + else + map = new HashMap(nBindings); + } /** * get all the reference meta data associated with a track name. diff --git a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java index 439cd41f7..717ced97f 100644 --- a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java +++ b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java @@ -106,10 +106,10 @@ public class GenomeLocParser { * @return the contig index, -1 if not found */ public int getContigIndex(final String contig, boolean exceptionOut) { - if (contigInfo.getSequenceIndex(contig) == -1 && exceptionOut) + int idx = contigInfo.getSequenceIndex(contig); + if (idx == -1 && exceptionOut) throw new UserException.CommandLineException(String.format("Contig %s given as location, but this contig isn't present in the Fasta sequence dictionary", contig)); - - return contigInfo.getSequenceIndex(contig); + return idx; } /**