From: David ‘Bombe’ Roden Date: Thu, 21 Oct 2010 08:46:05 +0000 (+0200) Subject: XML parsing is not thread-safe, synchronize on Sone downloader. X-Git-Tag: 0.1-RC1~134 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=2d3caec6e09b80daa4721f20c92113862f2164a3 XML parsing is not thread-safe, synchronize on Sone downloader. --- 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);