Prisma Cloud Compute: "java.nio.ByteBuffer module failed for Serverless Defender running on Java 21 runtime"
228
Created On 08/27/25 18:45 PM - Last Modified 12/31/25 20:27 PM
Symptom
Function fails when defender layer is added with the following error:
{
"errorMessage": "Unable to make field final byte[] java.nio.ByteBuffer.hb accessible: module java.base does not \"opens java.nio\" to unnamed module @5ebec15",
"errorType": "java.lang.reflect.InaccessibleObjectException",
"stackTrace": [
"java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(Unknown Source)",
"java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)",
"java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)",
"java.base/java.lang.reflect.Field.checkCanSetAccessible(Unknown Source)",
"java.base/java.lang.reflect.Field.setAccessible(Unknown Source)",
"com.google.gson.internal.reflect.UnsafeReflectionAccessor.makeAccessible(UnsafeReflectionAccessor.java:44)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.internal.bind.MapTypeAdapterFactory.create(MapTypeAdapterFactory.java:126)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:117)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:166)",
"com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)",
"com.google.gson.Gson.getAdapter(Gson.java:489)",
"com.google.gson.Gson.toJson(Gson.java:727)",
"com.google.gson.Gson.toJsonTree(Gson.java:628)",
"com.google.gson.Gson.toJsonTree(Gson.java:607)",
"com.twistlock.serverless.Twistlock.Handler(Twistlock.java:43)",
"org.example.Handler.protectedHandler(Handler.java:21)",
"java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)",
"java.base/java.lang.reflect.Method.invoke(Unknown Source)"
]
}Environment
- Lambda function running on Java 21 runtime.
- Prisma Cloud Compute
- Prisma Cloud Enterprise Edition
Cause
- Defender attempting to use reflection on the java.nio.ByteBuffer module.
- This is blocked by Java 21 runtime.
Resolution
Add environment variable JAVA_TOOL_OPTIONS with value --add-opens=java.base/java.nio=ALL-UNNAMED