Skip to content

Commit c8d4181

Browse files
committed
[GR-59538] Fix JDWP valid class loader check.
PullRequest: graal/19214
2 parents edbfec0 + ae0324c commit c8d4181

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/impl/ClassRegistries.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import com.oracle.truffle.espresso.runtime.EspressoContext;
4545
import com.oracle.truffle.espresso.runtime.staticobject.StaticObject;
4646
import com.oracle.truffle.espresso.substitutions.JavaType;
47-
import com.oracle.truffle.espresso.vm.InterpreterToVM;
4847

4948
public final class ClassRegistries {
5049

@@ -166,7 +165,8 @@ public List<Klass> getLoadedClassesByLoader(StaticObject classLoader) {
166165
}
167166
return result;
168167
}
169-
return getClassRegistry(classLoader).getLoadedKlasses();
168+
ClassRegistry classRegistry = getClassRegistry(classLoader);
169+
return classRegistry == null ? Collections.emptyList() : classRegistry.getLoadedKlasses();
170170
}
171171

172172
@TruffleBoundary
@@ -177,7 +177,7 @@ public Klass[] findLoadedClassAny(Symbol<Type> type) {
177177
klasses.add(bootClassRegistry.classes.get(type).klass());
178178
// if a type loaded by the boot loader, there can't
179179
// be any others, so return immediately
180-
return klasses.toArray(new Klass[0]);
180+
return klasses.toArray(Klass.EMPTY_ARRAY);
181181
}
182182
// continue search in all other registries
183183
synchronized (weakClassLoaderSet) {
@@ -188,7 +188,7 @@ public Klass[] findLoadedClassAny(Symbol<Type> type) {
188188
}
189189
}
190190
}
191-
return klasses.toArray(new Klass[0]);
191+
return klasses.toArray(Klass.EMPTY_ARRAY);
192192
}
193193

194194
@TruffleBoundary
@@ -305,15 +305,6 @@ public long getLoadedClassesCount() {
305305
return result;
306306
}
307307

308-
public boolean isClassLoader(StaticObject object) {
309-
if (InterpreterToVM.instanceOf(object, context.getMeta().java_lang_ClassLoader)) {
310-
synchronized (weakClassLoaderSet) {
311-
return weakClassLoaderSet.contains(object);
312-
}
313-
}
314-
return false;
315-
}
316-
317308
public void addToFixupList(Klass k) {
318309
fixupModuleList.add(k);
319310
}

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/runtime/JDWPContextImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
import com.oracle.truffle.espresso.redefinition.plugins.impl.RedefinitionPluginHandler;
8383
import com.oracle.truffle.espresso.runtime.staticobject.StaticObject;
8484
import com.oracle.truffle.espresso.threads.State;
85+
import com.oracle.truffle.espresso.vm.InterpreterToVM;
8586

8687
public final class JDWPContextImpl implements JDWPContext {
8788
private static final InteropLibrary UNCACHED = InteropLibrary.getUncached();
@@ -245,7 +246,7 @@ public List<? extends KlassRef> getInitiatedClasses(Object classLoader) {
245246
@Override
246247
public boolean isValidClassLoader(Object object) {
247248
if (object instanceof StaticObject loader) {
248-
return context.getRegistries().isClassLoader(loader);
249+
return InterpreterToVM.instanceOf(loader, context.getMeta().java_lang_ClassLoader);
249250
}
250251
return false;
251252
}

0 commit comments

Comments
 (0)