From d96c4cb4ff87adc5b2c4143371fd6462fafaa82a Mon Sep 17 00:00:00 2001 From: REAndroid Date: Tue, 10 Jan 2023 09:06:38 -0500 Subject: [PATCH] synchronized parser --- .../reandroid/xml/parser/XMLSpanParser.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/reandroid/xml/parser/XMLSpanParser.java b/src/main/java/com/reandroid/xml/parser/XMLSpanParser.java index 8be1782..ab0fe0e 100644 --- a/src/main/java/com/reandroid/xml/parser/XMLSpanParser.java +++ b/src/main/java/com/reandroid/xml/parser/XMLSpanParser.java @@ -21,21 +21,24 @@ import java.io.IOException; import java.io.StringReader; public class XMLSpanParser { + private final Object mLock = new Object(); private final XmlPullParser mParser; private XMLElement mCurrentElement; public XMLSpanParser(){ this.mParser = new MXParserNonValidating(); } public XMLElement parse(String text) throws XMLException { - try { - text=""+text+""; - parseString(text); - } catch (XmlPullParserException|IOException ex) { - throw new XMLException(ex.getMessage()); + synchronized (mLock){ + try { + text=""+text+""; + parseString(text); + } catch (XmlPullParserException|IOException ex) { + throw new XMLException(ex.getMessage()); + } + XMLElement element=mCurrentElement; + mCurrentElement=null; + return element; } - XMLElement element=mCurrentElement; - mCurrentElement=null; - return element; } private void parseString(String text) throws XmlPullParserException, IOException { mCurrentElement=null;