X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloader.java;h=4469d2fa8aa4faa2e869560134b1bea622e5590a;hb=2d3caec6e09b80daa4721f20c92113862f2164a3;hp=e11ded88a1cec03c8239809e444991b390d3dbba;hpb=ca4a41282673af46640e423473772444dea4f3c6;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index e11ded8..4469d2f 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -150,7 +150,16 @@ public class SoneDownloader extends AbstractService { try { xmlBucket = fetchResult.asBucket(); xmlInputStream = xmlBucket.getInputStream(); - Document document = XML.transformToDocument(xmlInputStream); + Document document; + /* XML parsing is not thread-safe. */ + synchronized (this) { + document = XML.transformToDocument(xmlInputStream); + } + if (document == null) { + /* TODO - mark Sone as bad. */ + logger.log(Level.WARNING, "Could not parse XML for Sone %s at %s!", new Object[] { originalSone, requestUri }); + return null; + } SimpleXML soneXml; try { soneXml = SimpleXML.fromDocument(document);