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
This commit is contained in:
hanna 2009-04-10 20:50:28 +00:00
parent 95753e1b34
commit 2322bb7d86
1 changed files with 3 additions and 1 deletions

View File

@ -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 );