Don’t crash on parsing incorrect XML.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Oct 2010 20:49:11 +0000 (22:49 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Oct 2010 20:49:11 +0000 (22:49 +0200)
src/main/java/net/pterodactylus/sone/core/SoneDownloader.java

index 4dd634c..a36c17a 100644 (file)
@@ -137,7 +137,14 @@ public class SoneDownloader extends AbstractService {
                        xmlBucket = fetchResult.asBucket();
                        xmlInputStream = xmlBucket.getInputStream();
                        Document document = XML.transformToDocument(xmlInputStream);
                        xmlBucket = fetchResult.asBucket();
                        xmlInputStream = xmlBucket.getInputStream();
                        Document document = XML.transformToDocument(xmlInputStream);
-                       SimpleXML soneXml = SimpleXML.fromDocument(document);
+                       SimpleXML soneXml;
+                       try {
+                               soneXml = SimpleXML.fromDocument(document);
+                       } catch (NullPointerException npe1) {
+                               /* for some reason, invalid XML can cause NPEs. */
+                               logger.log(Level.WARNING, "XML for Sone " + sone + " can not be parsed!", npe1);
+                               return;
+                       }
 
                        /* check ID. */
                        String soneId = soneXml.getValue("id", null);
 
                        /* check ID. */
                        String soneId = soneXml.getValue("id", null);