Class TestClassLoaderLeak

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

public class TestClassLoaderLeak extends org.h2.test.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).
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.h2.test.TestBase

    org.h2.test.TestBase.VoidCallable
  • Field Summary

    Fields inherited from class org.h2.test.TestBase

    BASE_TEST_DIR, config, start, uniqueId
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    main(String... a)
    Run just this test.
    void
    This method will be called by the test framework.

    Methods inherited from class org.h2.test.TestBase

    assertContains, assertEmpty, assertEqualDatabases, assertEqualReaders, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEqualStreams, assertFalse, assertFalse, assertKnownException, assertKnownException, assertNotContaining, assertNotNull, assertNotNull, assertNull, assertResult, assertResultRowCount, assertResultSetMeta, assertResultSetOrdered, assertResultSetOrdered, assertSame, assertSingleValue, assertSmaller, assertStartsWith, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertThrows, assertTrue, assertTrue, checkErrorCode, crash, createCaller, createFailingStream, eatMemory, execute, execute, fail, fail, freeMemory, getBaseDir, getClassPath, getFilePassword, getJVM, getMemoryUsed, getMemoryUsedBytes, getPassword, getPassword, getPowerOffCount, getSize, getTestDir, getTestName, getUser, init, init, isEnabled, logError, logErrorMessage, println, printTime, printTimeMemory, readString, runTest, setPowerOffCount, testFromMain, throwException, trace, trace, traceMemory

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TestClassLoaderLeak

      public TestClassLoaderLeak()
  • Method Details

    • main

      public static void main(String... a) throws Exception
      Run just this test.
      Parameters:
      a - ignored
      Throws:
      Exception
    • test

      public void test() throws Exception
      Description copied from class: org.h2.test.TestBase
      This method will be called by the test framework.
      Specified by:
      test in class org.h2.test.TestBase
      Throws:
      Exception - if an exception in the test occurs