Author: schor Date: Fri Apr 18 16:25:53 2014 New Revision: 1588506 URL: http://svn.apache.org/r1588506 Log: [UIMA-3759] Using profiler, determined that the test driver is holding on to instances of the test classes. If those classes, in turn, have instance variables holding onto large objects, and no tearDown() sets these to null, this causes an accum. of memory use. It looks like on some JVMs/OSs, we were near the max heap. Added tearDown cleanups to the major heap users.
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTestNoJcasCache.java uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/impl/ResourceManager_implTest.java Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java?rev=1588506&r1=1588505&r2=1588506&view=diff ============================================================================== --- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java (original) +++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java Fri Apr 18 16:25:53 2014 @@ -29,12 +29,7 @@ import static org.apache.uima.cas.impl.S import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -263,6 +258,14 @@ public class SerDesTest6 extends TestCas lfs = new ArrayList<FeatureStructure>(); } + public void tearDown() { + remoteCas = null; + lfs = null; + mSrc = null; + casSrc = null; + alternateTTypeSystems = null; + } + // void setupTgtTs(String kind) { // CASTestSetup setupTgt = new CASTestSetup(kind); // casTgt = (CASImpl) CASInitializer.initCas(setupTgt); @@ -286,8 +289,6 @@ public class SerDesTest6 extends TestCas } } - public void tearDown() { - } public void testDocText() throws Exception { Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java?rev=1588506&r1=1588505&r2=1588506&view=diff ============================================================================== --- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java (original) +++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java Fri Apr 18 16:25:53 2014 @@ -136,10 +136,6 @@ public class GrowingTheCasTest extends T numberOfSentences == this.smallHeapCas.getAnnotationIndex(Sentence.type).size()); assertTrue(this.getClass().toString() + ": number of tokens does not match", numberOfTokens == this.smallHeapCas.getAnnotationIndex(Token.type).size()); - } catch (AnalysisEngineProcessException e) { - e.printStackTrace(); - assertTrue(false); - } // try { // uncomment for memory use profiling // Thread.sleep(10000000); // } catch (InterruptedException e) { @@ -151,8 +147,13 @@ public class GrowingTheCasTest extends T // System.gc(); // System.gc(); // System.out.format("Size of 2 heaps: %,d after 2 gcs%n", r.totalMemory() - r.freeMemory()); -// -// smallHeapCas = null; +// + } catch (AnalysisEngineProcessException e) { + e.printStackTrace(); + assertTrue(false); + } finally { + smallHeapCas = null; // some junit runners hold onto instances of the test class after the test is run + } // jcas = null; // System.out.format("Size of 0 heaps: %,d%n", r.totalMemory() - r.freeMemory()); // System.gc(); Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTestNoJcasCache.java URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTestNoJcasCache.java?rev=1588506&r1=1588505&r2=1588506&view=diff ============================================================================== --- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTestNoJcasCache.java (original) +++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTestNoJcasCache.java Fri Apr 18 16:25:53 2014 @@ -157,6 +157,8 @@ public class GrowingTheCasTestNoJcasCach } catch (AnalysisEngineProcessException e) { e.printStackTrace(); assertTrue(false); + } finally { + smallHeapCas = null; // some junit runners hold onto instances of test classes after the test finishes } } Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java?rev=1588506&r1=1588505&r2=1588506&view=diff ============================================================================== --- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java (original) +++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java Fri Apr 18 16:25:53 2014 @@ -132,6 +132,7 @@ public class JCasTest extends TestCase { this.cas = null; this.ts = null; this.jcas = null; + this.endOfSentenceInstance = null; } public void testMissingFeatureInCas() throws Exception { Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/impl/ResourceManager_implTest.java URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/impl/ResourceManager_implTest.java?rev=1588506&r1=1588505&r2=1588506&view=diff ============================================================================== --- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/impl/ResourceManager_implTest.java (original) +++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/resource/impl/ResourceManager_implTest.java Fri Apr 18 16:25:53 2014 @@ -155,6 +155,10 @@ public class ResourceManager_implTest ex } } + public void tearDown() { + mManager = null; + } + public void testSetDataPath() throws Exception { try { String path = "c:\\this\\path\\is;for\\windows";