From 007fa449ff5525b2f56939775932a62e4458791f Mon Sep 17 00:00:00 2001 From: Raphael Date: Fri, 7 Oct 2011 17:04:38 -0700 Subject: [PATCH] SDK Manager: don't output XML parse errors to stderr. Do not merge. (cherry picked from commit 627ab8dcda7ff08c4a9b6de4f50768a3573ad333) Change-Id: I252cb444885067e9456ae4ee36250b7a932f2804 --- .../sdklib/internal/repository/SdkSource.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSource.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSource.java index 263bf1561..112cf49ba 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSource.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSource.java @@ -27,6 +27,7 @@ import com.android.sdklib.repository.SdkRepoConstants; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; +import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; @@ -660,6 +661,20 @@ public abstract class SdkSource implements IDescription, Comparable { // Parse the old document using a non namespace aware builder factory.setNamespaceAware(false); DocumentBuilder builder = factory.newDocumentBuilder(); + + // We don't want the default handler which prints errors to stderr. + builder.setErrorHandler(new ErrorHandler() { + public void warning(SAXParseException e) throws SAXException { + // pass + } + public void fatalError(SAXParseException e) throws SAXException { + throw e; + } + public void error(SAXParseException e) throws SAXException { + throw e; + } + }); + doc = builder.parse(xml); // Prepare a new document using a namespace aware builder @@ -744,6 +759,19 @@ public abstract class SdkSource implements IDescription, Comparable { Validator validator = schema == null ? null : schema.newValidator(); + // We don't want the default handler, which by default dumps errors to stderr. + validator.setErrorHandler(new ErrorHandler() { + public void warning(SAXParseException e) throws SAXException { + // pass + } + public void fatalError(SAXParseException e) throws SAXException { + throw e; + } + public void error(SAXParseException e) throws SAXException { + throw e; + } + }); + return validator; } -- 2.11.0