Deviation
ID: OJ9-WASI-INDY-RESOLUTION-001 (reclassified from OJ9-WASI-INDY-CONCAT-001)
Backend: openj9
Runtime: semeru
Layer: backend-runtime
FijiLink Impact: none
Description
All invokedynamic instructions fail on OpenJ9-WASI with NullPointerException. Both lambda (LambdaMetafactory) and string concat (StringConcatFactory) are affected. The defect is in class loader delegation during invokedynamic bootstrap resolution, not in any specific bootstrap method.
Diagnosis
During invokedynamic bootstrap resolution:
- MethodHandleResolver runs
- Needs to resolve
java/lang/Class and other java.base types
loadNonArrayClass returns NULL through app/ext class loader path
- Bootstrap-visible classes are not found because resolution checks app/ext loaders first
- NPE thrown inside the bootstrap method
Evidence:
- LambdaProbe: FAIL (NPE)
- ConcatProbe: FAIL (NPE)
- MH class pre-init: all 5 classes load and clinit succeeds
- MethodType.genericMethodType(1): succeeds (not invokedynamic)
- Integer.toString(42): succeeds (not invokedynamic)
Fix Target
OpenJ9-WASI class loader delegation for MethodHandleResolver bootstrap resolution. Ensure java.base classes resolve through bootstrap loader during invokedynamic bootstrap, not through app/ext loader chain.
Validation (in order)
- LambdaProbe PASS
- ConcatProbe PASS
- DBH-3B standard javac 7/7 PASS
Blocking
- All invokedynamic on OpenJ9-WASI (lambda, string concat, method refs)
- DBH-3B under standard javac
- Any Java 9+ code using string concatenation
References
Deviation
ID: OJ9-WASI-INDY-RESOLUTION-001 (reclassified from OJ9-WASI-INDY-CONCAT-001)
Backend: openj9
Runtime: semeru
Layer: backend-runtime
FijiLink Impact: none
Description
All invokedynamic instructions fail on OpenJ9-WASI with NullPointerException. Both lambda (LambdaMetafactory) and string concat (StringConcatFactory) are affected. The defect is in class loader delegation during invokedynamic bootstrap resolution, not in any specific bootstrap method.
Diagnosis
During invokedynamic bootstrap resolution:
java/lang/Classand other java.base typesloadNonArrayClassreturns NULL through app/ext class loader pathEvidence:
Fix Target
OpenJ9-WASI class loader delegation for MethodHandleResolver bootstrap resolution. Ensure java.base classes resolve through bootstrap loader during invokedynamic bootstrap, not through app/ext loader chain.
Validation (in order)
Blocking
References