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;