--- old/src/jdk.jdi/share/classes/com/sun/tools/jdi/EventSetImpl.java 2020-04-13 21:04:07.000000000 -0700 +++ new/src/jdk.jdi/share/classes/com/sun/tools/jdi/EventSetImpl.java 2020-04-13 21:04:07.000000000 -0700 @@ -425,16 +425,18 @@ } public String className() { - String name = classSignature.substring(1, classSignature.length() - 1); - int index = name.indexOf("."); // check if it's a hidden class - if (index < 0) { - name = name.replace('/', '.'); + int index = classSignature.indexOf(";"); + if (index == classSignature.length()) { + // trim leading 'L' and trailing ';' + return classSignature.substring(1, classSignature.length() - 1) + .replace('/', '.'); } else { - // the class name of a hidden class is + "/" + - name = name.substring(0, index).replace('/', '.') + "/" + - name.substring(index + 1, name.length()); + // type descriptor of a hidden class is "L" + N + ";" + "/" + + // the class name is mapped to: N.replace('/', '.') + "/" + + return classSignature.substring(1, index) + .replace('/', '.') + + classSignature.substring(index+1); // skip ';' } - return name; } public String classSignature() {