From 2322bb7d86b9d288f2558e3d22af5fd60c0f38fd Mon Sep 17 00:00:00 2001 From: hanna Date: Fri, 10 Apr 2009 20:50:28 +0000 Subject: [PATCH] Workaround: use a single ReferenceIterator for an entire micromanaged traversal. We'll have to do something about ReferenceIterator thread safety later. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@361 348d0f76-0448-11de-a6fe-93d51630548a --- .../org/broadinstitute/sting/gatk/executive/MicroManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/java/src/org/broadinstitute/sting/gatk/executive/MicroManager.java b/java/src/org/broadinstitute/sting/gatk/executive/MicroManager.java index 7c4db183b..a4a53db37 100644 --- a/java/src/org/broadinstitute/sting/gatk/executive/MicroManager.java +++ b/java/src/org/broadinstitute/sting/gatk/executive/MicroManager.java @@ -59,6 +59,8 @@ public class MicroManager { ShardStrategy shardStrategy = ShardStrategyFactory.shatter( ShardStrategyFactory.SHATTER_STRATEGY.LINEAR, ref.getSequenceDictionary(), SHARD_SIZE ); + ReferenceIterator refIter = new ReferenceIterator(ref); + Object accumulator = ((LocusWalker)walker).reduceInit(); for(Shard shard: shardStrategy) { @@ -74,7 +76,7 @@ public class MicroManager { throw new RuntimeException( ex ); } - ReferenceProvider referenceProvider = new ReferenceProvider( new ReferenceIterator(ref) ); + ReferenceProvider referenceProvider = new ReferenceProvider( refIter ); LocusContextProvider locusProvider = new LocusContextProvider( readShard ); accumulator = traversalEngine.traverse( walker, shard, referenceProvider, locusProvider, accumulator );