in src/com/pty4j/windows/conpty/ConsoleProcessListFetcher.java [176:199]
private static String extractRoot(@NotNull URL resourceURL, @NotNull String resourcePath) {
if (!resourcePath.startsWith("/")) {
throw new IllegalStateException("precondition failed: " + resourcePath);
}
String resultPath = null;
String protocol = resourceURL.getProtocol();
if ("file".equals(protocol)) {
String path = urlToFile(resourceURL).getPath();
String testPath = path.replace('\\', '/');
String testResourcePath = resourcePath.replace('\\', '/');
if (testPath.endsWith(testResourcePath)) {
resultPath = path.substring(0, path.length() - resourcePath.length());
}
}
else if ("jar".equals(protocol)) {
resultPath = getJarPath(resourceURL.getFile());
}
if (resultPath == null) {
throw new IllegalStateException("Cannot extract '" + resourcePath + "' from '" + resourceURL + "', " + protocol);
}
return resultPath;
}