Package org.apache.commons.io.input
Class ByteBufferCleaner
java.lang.Object
org.apache.commons.io.input.ByteBufferCleaner
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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static interface
private static final class
private static final class
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static void
clean
(ByteBuffer buffer) Releases memory held by the givenByteBuffer
.private static ByteBufferCleaner.Cleaner
(package private) static boolean
Tests if were able to load a suitable cleaner for the current JVM.
-
Field Details
-
INSTANCE
-
-
Constructor Details
-
ByteBufferCleaner
ByteBufferCleaner()
-
-
Method Details
-
clean
Releases memory held by the givenByteBuffer
.- Parameters:
buffer
- to release.- Throws:
IllegalStateException
- on internal failure.
-
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.
-