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";


Reply via email to