{"record":{"id":"235e940bc7e36845","repo":"pinpoint-apm/pinpoint","slug":"javalangaccess-not-found","errorCode":null,"errorMessage":"JavaLangAccess not found","messagePattern":"JavaLangAccess not found","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"critical","filePath":"agent-module/profiler-optional/profiler-optional-jdk9/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/JavaLangAccessHelper.java","lineNumber":69,"sourceCode":"    private static JavaLangAccess newJavaLangAccessor()  {\n        try {\n            Class.forName(MISC_JAVA_LANG_ACCESS_CLASS_NAME, false, JavaLangAccess.class.getClassLoader());\n            return new JavaLangAccess9();\n        } catch (ClassNotFoundException ignored) {\n            // ignore\n        }\n        try {\n            // https://github.com/naver/pinpoint/issues/6752\n            // Oracle JDK11 : jdk.internal.access\n            // openJDK11 =  jdk.internal.misc\n            Class.forName(ACCESS_SHARED_SECRETS_CLASS_NAME, false, JavaLangAccess.class.getClassLoader());\n            return new JavaLangAccess11();\n        } catch (ClassNotFoundException ignored) {\n            // ignore\n        }\n\n        dumpJdkInfo();\n        throw new IllegalStateException(\"JavaLangAccess not found\");\n    }\n}","sourceCodeStart":51,"sourceCodeEnd":71,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler-optional/profiler-optional-jdk9/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/JavaLangAccessHelper.java#L51-L71","documentation":"JavaLangAccessHelper.newJavaLangAccessor probes for JavaLangAccess implementations (JavaLangAccess9/11, etc.) and throws IllegalStateException('JavaLangAccess not found') when none can be loaded. Without this internal access the agent cannot define classes on JDK9+, so it fails fast at accessor creation.","triggerScenarios":"Calling JavaLangAccessHelper.getJavaLangAccess()/JAVA_LANG_ACCESS initialization on a JDK version whose JavaLangAccess accessor class (e.g. JavaLangAccess11) is not present or whose internal jdk.internal APIs moved/renamed.","commonSituations":"Running an older pinpoint agent on a newer JDK (e.g. JDK 12+ removed JavaLangAccess9 path, agent only knows up to 11); missing --add-exports for jdk.internal.misc; unsupported early-access JDK.","solutions":["Upgrade pinpoint to a version supporting your exact JDK version","Add --add-exports jdk.internal.misc=ALL-UNNAMED (and related flags) for the JDK","Check dumpJdkInfo() output to confirm the detected JDK internals","Run the agent on a JDK supported by your agent version"],"exampleFix":"// before: JDK17 with old agent\njava -jar pinpoint-agent ... // IllegalStateException JavaLangAccess not found\n// after: upgrade agent or grant access\njava --add-exports jdk.internal.misc=ALL-UNNAMED -jar pinpoint-agent...","handlingStrategy":"fallback","validationCode":"try {\n    Class.forName(\"jdk.internal.misc.SharedSecrets\");\n} catch (ClassNotFoundException e) {\n    // unsupported JDK internals\n}","typeGuard":"boolean supportsJavaLangAccess() {\n    try { JavaLangAccessHelper.getJavaLangAccess(); return true; }\n    catch (IllegalStateException e) { return false; }\n}","tryCatchPattern":"try {\n    accessor = JavaLangAccessHelper.getJavaLangAccess();\n} catch (IllegalStateException e) {\n    logger.warn(\"JavaLangAccess unavailable on this JDK\", e);\n    // fall back to ClassLoader.defineClass reflection or disable instrumentation\n}","preventionTips":["Pin agent version to your JDK version's supported matrix","Add --add-exports/--add-opens flags for jdk.internal packages","Test agent startup on JDK upgrades before rollout"],"tags":["java9","jdk-internal","classloading","compatibility"],"backgroundTag":"unsupported-platform","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}