Skip to content

OJ9-WASI-INDY-RESOLUTION-001: general invokedynamic bootstrap resolution failure — class loader delegation #3

Description

@zacharywhitley

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:

  1. MethodHandleResolver runs
  2. Needs to resolve java/lang/Class and other java.base types
  3. loadNonArrayClass returns NULL through app/ext class loader path
  4. Bootstrap-visible classes are not found because resolution checks app/ext loaders first
  5. 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)

  1. LambdaProbe PASS
  2. ConcatProbe PASS
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions