From 2cf88be2336c6b15a1b707ef72c5cdd220ec916d Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Tue, 25 Jun 2013 12:30:41 +0200 Subject: [PATCH] continue WEB-8255 LiveEdit must work as part of JS debug session (JavaScript Debug Configuration) WEB-8207 WEB-7071 WEB-6273 WEB-7461 WEB-1766 WEB-6951 WEB-6853 WEB-6918 WEB-6828 WEB-6826 WEB-6685 WEB-6196 --- .../xdebugger/impl/XDebuggerManagerImpl.java | 8 ++++++-- xml/impl/src/com/intellij/ide/browsers/Urls.java | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java index 254235adaaa5..6f07239a0e4e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerManagerImpl.java @@ -36,6 +36,7 @@ import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.impl.http.HttpVirtualFile; +import com.intellij.util.SmartList; import com.intellij.util.messages.MessageBus; import com.intellij.util.xmlb.annotations.Property; import com.intellij.xdebugger.*; @@ -289,14 +290,17 @@ public class XDebuggerManagerImpl extends XDebuggerManager @NotNull @Override public Collection getDebugProcesses(Class processClass) { - final List list = new ArrayList(); + List list = null; for (XDebugSessionImpl session : mySessions.values()) { final XDebugProcess process = session.getDebugProcess(); if (processClass.isInstance(process)) { + if (list == null) { + list = new SmartList(); + } list.add(processClass.cast(process)); } } - return list; + return list == null ? Collections.emptyList() : list; } @Override diff --git a/xml/impl/src/com/intellij/ide/browsers/Urls.java b/xml/impl/src/com/intellij/ide/browsers/Urls.java index 797d95422615..a7e13061ec01 100644 --- a/xml/impl/src/com/intellij/ide/browsers/Urls.java +++ b/xml/impl/src/com/intellij/ide/browsers/Urls.java @@ -41,13 +41,25 @@ public final class Urls { } @Nullable - private static Url parseUrl(String url, boolean urlAsRaw) { - Matcher matcher = URI_PATTERN.matcher(url); + private static Url parseUrl(@NotNull String url, boolean urlAsRaw) { + String urlToParse; + if (url.startsWith("jar:file://")) { + urlToParse = url.substring("jar:".length()); + } + else { + urlToParse = url; + } + + Matcher matcher = URI_PATTERN.matcher(urlToParse); if (!matcher.matches()) { LOG.warn("Cannot parse url " + url); return null; } String scheme = matcher.group(1); + if (urlToParse != url) { + scheme = "jar:" + scheme; + } + String authority = StringUtil.nullize(matcher.group(2)); String path = StringUtil.nullize(matcher.group(3));