src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
--- a/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Thu Oct 24 12:18:32 2019 -0700
+++ b/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Thu Oct 24 16:58:39 2019 -0700
@@ -360,6 +360,11 @@
}
@Override
+ public boolean isBeingInitialized() {
+ return isArray() ? false : getInitState() == config().instanceKlassStateBeingInitialized;
+ }
+
+ @Override
public boolean isLinked() {
return isArray() ? true : getInitState() >= config().instanceKlassStateLinked;
}
@@ -379,7 +384,7 @@
public void initialize() {
if (!isInitialized()) {
runtime().compilerToVm.ensureInitialized(this);
- assert isInitialized();
+ assert isInitialized() || isBeingInitialized();
}
}
@@ -578,11 +583,6 @@
return new AssumptionResult<>(resolvedMethod);
}
- if (resolvedMethod.canBeStaticallyBound()) {
- // No assumptions are required.
- return new AssumptionResult<>(resolvedMethod);
- }
-
ResolvedJavaMethod result = resolvedMethod.uniqueConcreteMethod(this);
if (result != null) {
return new AssumptionResult<>(result, new ConcreteMethod(method, this, result));