Class 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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, 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 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: org.h2.test.TestBase
        This method will be called by the test framework.
        Specified by:
        test in class org.h2.test.TestBase
        Throws:
        java.lang.Exception - if an exception in the test occurs