This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag OpenBSD in repository testng.
commit 88e7c8811c34f1693e243685219dfb09f5811e23 Author: Vladislav Rassokhin <[email protected]> Date: Sat Apr 13 03:57:06 2013 +0400 testng-368 FWK005 parse may not be called while parsing Make org.testng.xml.XMLParser.m_saxParser private. ! Change on OpenAPI. And add method with synchronization. --- src/main/java/org/testng/xml/ResultXMLParser.java | 2 +- src/main/java/org/testng/xml/SuiteXmlParser.java | 2 +- src/main/java/org/testng/xml/XMLParser.java | 15 +++++++++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/testng/xml/ResultXMLParser.java b/src/main/java/org/testng/xml/ResultXMLParser.java index 8f4f31c..b93e7d0 100644 --- a/src/main/java/org/testng/xml/ResultXMLParser.java +++ b/src/main/java/org/testng/xml/ResultXMLParser.java @@ -40,7 +40,7 @@ public class ResultXMLParser extends XMLParser<Object> { loadClasses); try { - m_saxParser.parse(inputStream, handler); + parse(inputStream, handler); return null; } diff --git a/src/main/java/org/testng/xml/SuiteXmlParser.java b/src/main/java/org/testng/xml/SuiteXmlParser.java index 2a0202c..f746f82 100644 --- a/src/main/java/org/testng/xml/SuiteXmlParser.java +++ b/src/main/java/org/testng/xml/SuiteXmlParser.java @@ -14,7 +14,7 @@ public class SuiteXmlParser extends XMLParser<XmlSuite> { TestNGContentHandler contentHandler = new TestNGContentHandler(currentFile, loadClasses); try { - m_saxParser.parse(inputStream, contentHandler); + parse(inputStream, contentHandler); return contentHandler.getSuite(); } diff --git a/src/main/java/org/testng/xml/XMLParser.java b/src/main/java/org/testng/xml/XMLParser.java index 264c4aa..6afb5c8 100644 --- a/src/main/java/org/testng/xml/XMLParser.java +++ b/src/main/java/org/testng/xml/XMLParser.java @@ -3,15 +3,18 @@ package org.testng.xml; import org.testng.TestNGException; import org.testng.internal.ClassHelper; import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import java.io.IOException; +import java.io.InputStream; abstract public class XMLParser<T> implements IFileParser<T> { - protected static SAXParser m_saxParser; + private final static SAXParser m_saxParser; static { SAXParserFactory spf = loadSAXParserFactory(); @@ -20,13 +23,21 @@ abstract public class XMLParser<T> implements IFileParser<T> { spf.setValidating(true); } + SAXParser parser = null; try { - m_saxParser = spf.newSAXParser(); + parser = spf.newSAXParser(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } + m_saxParser = parser; + } + + public void parse(InputStream is, DefaultHandler dh) throws SAXException, IOException { + synchronized (m_saxParser) { + m_saxParser.parse(is, dh); + } } /** -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

