From d4926211226d49fe07fb2894e4bec230fd62bbd1 Mon Sep 17 00:00:00 2001 From: hanna Date: Fri, 29 Oct 2010 17:09:58 +0000 Subject: [PATCH] The TraversalEngine's habit of hanging onto old ROD states seems to have a bad interaction with Tribble. In Tribble, keeping these references in memory until the shard is flushed means keeping one 512K character buffer per object in memory. Fixed by purging the reference to the object at the end of the shard traversal. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@4599 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/datasources/providers/ManagingReferenceOrderedView.java | 1 + .../sting/gatk/datasources/providers/RodLocusView.java | 1 + 2 files changed, 2 insertions(+) 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 654f0999f..1d9371315 100755 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/ManagingReferenceOrderedView.java @@ -62,6 +62,7 @@ public class ManagingReferenceOrderedView implements ReferenceOrderedView { public void close() { for( ReferenceOrderedDataState state: states ) state.dataSource.close( state.iterator ); + states.clear(); // Clear out the existing data so that post-close() accesses to this data will fail-fast. states = null; 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 186a7d335..775b36561 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/providers/RodLocusView.java @@ -208,6 +208,7 @@ public class RodLocusView extends LocusView implements ReferenceOrderedView { public void close() { for( ReferenceOrderedDataState state: states ) state.dataSource.close( state.iterator ); + states.clear(); rodQueue = null; tracker = null;