Package org.apache.commons.io.input
Class ByteBufferCleaner
- java.lang.Object
-
- org.apache.commons.io.input.ByteBufferCleaner
-
class ByteBufferCleaner extends java.lang.Object
Cleans a directByteBuffer
. 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
ByteBufferCleaner.Cleaner
private static class
ByteBufferCleaner.Java8Cleaner
private static class
ByteBufferCleaner.Java9Cleaner
-
Field Summary
Fields Modifier and Type Field Description private static ByteBufferCleaner.Cleaner
INSTANCE
-
Constructor Summary
Constructors Constructor Description ByteBufferCleaner()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static void
clean(java.nio.ByteBuffer buffer)
Releases memory held by the givenByteBuffer
.private static ByteBufferCleaner.Cleaner
getCleaner()
(package private) static boolean
isSupported()
Tests if were able to load a suitable cleaner for the current JVM.
-
-
-
Field Detail
-
INSTANCE
private static final ByteBufferCleaner.Cleaner INSTANCE
-
-
Method Detail
-
clean
static void clean(java.nio.ByteBuffer buffer)
Releases memory held by the givenByteBuffer
.- Parameters:
buffer
- to release.- Throws:
java.lang.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 callByteBufferCleaner#clean(ByteBuffer)
when this method returns false will result in an exception.- Returns:
true
if cleaning is supported,false
otherwise.
-
-