org.h2.test.unit
Class TestClassLoaderLeak

java.lang.Object
  extended by org.h2.test.TestBase
      extended by org.h2.test.unit.TestClassLoaderLeak

public class TestClassLoaderLeak
extends TestBase

Test that static references within the database engine don't reference the class itself. For example, there is a leak if a class contains a static reference to a stack trace. This was the case using the following declaration: static EOFException EOF = new EOFException(). The way to solve the problem is to not use such references, or to not fill in the stack trace (which indirectly references the class loader).


Field Summary
 
Fields inherited from class org.h2.test.TestBase
BASE_TEST_DIR, config, start, TEMP_DIR, uniqueId
 
Constructor Summary
TestClassLoaderLeak()
           
 
Method Summary
static void main(java.lang.String... a)
          Run just this test.
 void test()
          This method will be called by the test framework.
 
Methods inherited from class org.h2.test.TestBase
assertContains, assertEqualDatabases, assertEqualReaders, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualStreams, assertFalse, assertFalse, assertKnownException, assertKnownException, assertNull, assertResult, assertResultRowCount, assertResultSetMeta, assertResultSetOrdered, assertSingleValue, assertSmaller, assertStartsWith, assertThrows, assertThrows, assertThrows, assertTrue, assertTrue, crash, createCaller, createCaller, createClassProxy, deleteDb, deleteDb, eatMemory, fail, fail, freeMemory, getBaseDir, getClassPath, getConnection, getConnection, getFilePassword, getMemoryUsed, getPassword, getPassword, getSize, getTestDir, getURL, getUser, init, init, logError, println, printTime, printTimeMemory, readString, runTest, startServerIfRequired, testCase, trace, trace, traceMemory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TestClassLoaderLeak

public TestClassLoaderLeak()
Method Detail

main

public static void main(java.lang.String... a)
                 throws java.lang.Exception
Run just this test.

Parameters:
a - ignored
Throws:
java.lang.Exception

test

public void test()
          throws java.lang.Exception
Description copied from class: TestBase
This method will be called by the test framework.

Specified by:
test in class TestBase
Throws:
java.lang.Exception - if an exception in the test occurs