From 85c5cced5742e86eb75a3b4de2a2cfda1b81b0a3 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 25 Jul 2018 17:19:22 +0300 Subject: [PATCH] handle macOS urls with %-escaping --- platform/util/src/com/intellij/util/lang/ClassPath.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/util/src/com/intellij/util/lang/ClassPath.java b/platform/util/src/com/intellij/util/lang/ClassPath.java index 5bb6e0674cd3..9169fc36adc4 100644 --- a/platform/util/src/com/intellij/util/lang/ClassPath.java +++ b/platform/util/src/com/intellij/util/lang/ClassPath.java @@ -17,6 +17,7 @@ package com.intellij.util.lang; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; @@ -394,9 +395,9 @@ public class ClassPath { } if (ourOrder != null) { - String jarURL = FileUtil.toSystemIndependentName(loader.getBaseURL().getFile()); - jarURL = StringUtil.trimStart(jarURL, "file:/"); - if (jarURL.startsWith(home)) { + Pair pair = URLUtil.splitJarUrl(loader.getBaseURL().toExternalForm()); + String jarURL = pair != null ? pair.first : null; + if (jarURL != null && jarURL.startsWith(home)) { jarURL = jarURL.replaceFirst(home, ""); jarURL = StringUtil.trimEnd(jarURL, "!/"); ourOrder.println(url + ":" + jarURL);