oracle/graal · error · JVMCIError
unresolved RecordComponent %s
Error message
unresolved RecordComponent %s
What it means
Error "unresolved RecordComponent %s" thrown in oracle/graal.
Source
Thrown at espresso-compiler-stub/src/com.oracle.truffle.espresso.vmaccess/src/com/oracle/truffle/espresso/vmaccess/EspressoExternalVMAccess.java:720
@Override
public ResolvedJavaRecordComponent asResolvedJavaRecordComponent(Constant constant) {
if (constant instanceof EspressoExternalObjectConstant espressoConstant &&
"java.lang.reflect.RecordComponent".equals(espressoConstant.getValue().getMetaObject().getMetaQualifiedName())) {
Value value = espressoConstant.getValue();
/*
* The default JVMCI lookup accepts a host RecordComponent. Mirror its matching logic for
* this guest reflection object.
*/
ResolvedJavaType declaringRecord = EspressoExternalConstantReflectionProvider.classAsType(value.invokeMember("getDeclaringRecord"), this);
String name = value.invokeMember("getName").asString();
ResolvedJavaType type = EspressoExternalConstantReflectionProvider.classAsType(value.invokeMember("getType"), this);
for (ResolvedJavaRecordComponent component : declaringRecord.getRecordComponents()) {
if (component.getName().equals(name) && component.getType().equals(type)) {
return component;
}
}
throw new JVMCIError("unresolved RecordComponent %s", value);
}
return null;
}
@Override
public JavaConstant asFieldConstant(ResolvedJavaField field) {
if (!(field instanceof EspressoExternalResolvedJavaField espressoField)) {
throw new IllegalArgumentException("Expected an EspressoExternalResolvedJavaMethod, got " + safeGetClass(field));
}
if (field.isInternal()) {
return null;
}
Value value = espressoField.getReflectFieldMirror();
if (value.isNull()) {
return null;
}
return new EspressoExternalObjectConstant(this, value);
}View on GitHub (pinned to a66e9ccd1d)
Solutions
- Fix the condition reported by the error: unresolved RecordComponent {}
- Check the throwing call site and ensure its documented preconditions (argument values, types, environment, or configuration) are satisfied before the call.
Example fix
Validate inputs and environment so that the failing condition does not occur: unresolved RecordComponent {} When it happens
Trigger: Thrown at espresso-compiler-stub/src/com.oracle.truffle.espresso.vmaccess/src/com/oracle/truffle/espresso/vmaccess/EspressoExternalVMAccess.java:720 when the library encounters an invalid state.
Common situations: Occurs when a caller violates the contract guarded by this check: unresolved RecordComponent {}
AI-assisted analysis of oracle/graal@a66e9ccd1d (2026-08-14).
Data as JSON: /api/errors/32b29ba51c7d529f.
Report an issue: GitHub.