Class ByteBufferCleaner

java.lang.Object
org.apache.commons.io.input.ByteBufferCleaner

class ByteBufferCleaner extends 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

  • Field Details

  • Constructor Details

    • ByteBufferCleaner

      ByteBufferCleaner()
  • Method Details

    • clean

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

      private static ByteBufferCleaner.Cleaner getCleaner()
    • 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.