8184689: Test applications/ctw/Modules.java fails with AssertionError in sun.hotspot.tools.ctw.Utils.fileNameToClassName
Reviewed-by: kvn
This commit is contained in:
parent
4a77945c89
commit
abf7e33aa1
@ -43,9 +43,16 @@ public class ClassPathJimageEntry extends PathHandler.PathEntry {
|
||||
return Arrays.stream(reader.getEntryNames())
|
||||
.filter(name -> name.endsWith(".class"))
|
||||
.filter(name -> !name.endsWith("module-info.class"))
|
||||
.map(ClassPathJimageEntry::toFileName)
|
||||
.map(Utils::fileNameToClassName);
|
||||
}
|
||||
|
||||
private static String toFileName(String name) {
|
||||
final char nameSeparator = '/';
|
||||
assert name.charAt(0) == nameSeparator : name;
|
||||
return name.substring(name.indexOf(nameSeparator, 1) + 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String description() {
|
||||
return "# jimage: " + root;
|
||||
|
@ -203,18 +203,14 @@ public class Utils {
|
||||
* Converts the filename to classname.
|
||||
*
|
||||
* @param filename filename to convert
|
||||
* @return corresponding classname.
|
||||
* @return corresponding classname
|
||||
* @throws AssertionError if filename isn't valid filename for class file -
|
||||
* {@link #isClassFile(String)}
|
||||
*/
|
||||
public static String fileNameToClassName(String filename) {
|
||||
assert isClassFile(filename);
|
||||
// workaround for the class naming in jimage : /<module>/<class_name>
|
||||
final char nameSeparator = '/';
|
||||
int nameStart = filename.charAt(0) == nameSeparator
|
||||
? filename.indexOf(nameSeparator, 1) + 1
|
||||
: 0;
|
||||
return filename.substring(nameStart, filename.length() - CLASSFILE_EXT.length())
|
||||
return filename.substring(0, filename.length() - CLASSFILE_EXT.length())
|
||||
.replace(nameSeparator, '.');
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user