Class ByteBufferCleaner


  • class ByteBufferCleaner
    extends java.lang.Object
    Cleans a direct ByteBuffer. Without manual intervention, direct ByteBuffers will be cleaned eventually upon garbage collection. However, this should not be relied upon since it may not occur in a timely fashion - especially since off heap ByeBuffers don't put pressure on the garbage collector.

    Warning: Do not attempt to use a direct ByteBuffer that has been cleaned or bad things will happen. Don't use this class unless you can ensure that the cleaned buffer will not be accessed anymore.

    See JDK-4724038

    • Constructor Detail

      • ByteBufferCleaner

        ByteBufferCleaner()
    • Method Detail

      • clean

        static void clean​(java.nio.ByteBuffer buffer)
        Releases memory held by the given ByteBuffer.
        Parameters:
        buffer - to release.
        Throws:
        java.lang.IllegalStateException - on internal failure.
      • isSupported

        static boolean isSupported()
        Tests if were able to load a suitable cleaner for the current JVM. Attempting to call ByteBufferCleaner#clean(ByteBuffer) when this method returns false will result in an exception.
        Returns:
        true if cleaning is supported, false otherwise.