Package org.h2.util

Class CloseWatcher


  • public class CloseWatcher
    extends java.lang.ref.PhantomReference<java.lang.Object>
    A phantom reference to watch for unclosed objects.
    • Constructor Summary

      Constructors 
      Constructor Description
      CloseWatcher​(java.lang.Object referent, java.lang.ref.ReferenceQueue<java.lang.Object> q, java.lang.AutoCloseable closeable)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.AutoCloseable getCloseable()  
      java.lang.String getOpenStackTrace()
      Get the open stack trace or null if none.
      static CloseWatcher pollUnclosed()
      Check for a collected object.
      static CloseWatcher register​(java.lang.Object o, java.lang.AutoCloseable closeable, boolean stackTrace)
      Register an object.
      static void unregister​(CloseWatcher w)
      Unregister an object, so it is no longer tracked.
      • Methods inherited from class java.lang.ref.PhantomReference

        get
      • Methods inherited from class java.lang.ref.Reference

        clear, clone, enqueue, isEnqueued, reachabilityFence
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CloseWatcher

        public CloseWatcher​(java.lang.Object referent,
                            java.lang.ref.ReferenceQueue<java.lang.Object> q,
                            java.lang.AutoCloseable closeable)
    • Method Detail

      • pollUnclosed

        public static CloseWatcher pollUnclosed()
        Check for a collected object.
        Returns:
        the first watcher
      • register

        public static CloseWatcher register​(java.lang.Object o,
                                            java.lang.AutoCloseable closeable,
                                            boolean stackTrace)
        Register an object. Before calling this method, pollUnclosed() should be called in a loop to remove old references.
        Parameters:
        o - the object
        closeable - the object to close
        stackTrace - whether the stack trace should be registered (this is relatively slow)
        Returns:
        the close watcher
      • unregister

        public static void unregister​(CloseWatcher w)
        Unregister an object, so it is no longer tracked.
        Parameters:
        w - the reference
      • getOpenStackTrace

        public java.lang.String getOpenStackTrace()
        Get the open stack trace or null if none.
        Returns:
        the open stack trace
      • getCloseable

        public java.lang.AutoCloseable getCloseable()