The JIT collects an object as soon as nothing reads its fields again - even mid-method. If a Cleaner or finalizer releases a native handle, it can be freed underneath the call still using it. reachabilityFence is the only fix.
This topic is available to PRO members.
Open this topic Go PRO Sign in Create a free accountRun this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.
Published 2026-08-25