From 135ed8924983a8cd665f8f1f3ccdd14cd9b3cf97 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 18 Jun 2014 16:04:44 +0200 Subject: [PATCH] restore Find Jar working with malformed html (use nekohtml) --- java/java-impl/java-impl.iml | 9 +++++++ .../com/intellij/jarFinder/FindJarFix.java | 24 ++++--------------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/java/java-impl/java-impl.iml b/java/java-impl/java-impl.iml index f9eca174d12c..187f6db5d385 100644 --- a/java/java-impl/java-impl.iml +++ b/java/java-impl/java-impl.iml @@ -55,6 +55,15 @@ + + + + + + + + + diff --git a/java/java-impl/src/com/intellij/jarFinder/FindJarFix.java b/java/java-impl/src/com/intellij/jarFinder/FindJarFix.java index 688788ae3c16..ee203e34deac 100644 --- a/java/java-impl/src/com/intellij/jarFinder/FindJarFix.java +++ b/java/java-impl/src/com/intellij/jarFinder/FindJarFix.java @@ -31,7 +31,7 @@ import com.intellij.util.NotNullFunction; import com.intellij.util.PlatformIcons; import com.intellij.util.download.DownloadableFileDescription; import com.intellij.util.download.DownloadableFileService; -import org.apache.xerces.parsers.DOMParser; +import org.cyberneko.html.parsers.DOMParser; import org.jetbrains.annotations.NotNull; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; @@ -40,11 +40,8 @@ import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import javax.swing.*; -import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; import java.io.IOException; -import java.io.InputStream; -import java.net.URL; import java.util.*; /** @@ -129,22 +126,9 @@ public abstract class FindJarFix implements IntentionActio final Runnable runnable = new Runnable() { public void run() { try { - Document doc; - - DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); - builderFactory.setExpandEntityReferences(false); - builderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - - URL url = new URL(CLASS_ROOT_URL + fqn.replace('.', '/') + CLASS_PAGE_EXT); - - InputStream stream = url.openStream(); - try { - doc = builderFactory.newDocumentBuilder().parse(stream); - } - finally { - stream.close(); - } - + final DOMParser parser = new DOMParser(); + parser.parse(CLASS_ROOT_URL + fqn.replace('.', '/') + CLASS_PAGE_EXT); + final Document doc = parser.getDocument(); if (doc != null) { final NodeList links = doc.getElementsByTagName(LINK_TAG_NAME); for (int i = 0; i < links.getLength(); i++) {