Don’t try to parse when no parser was found.
[arachne.git] / src / net / pterodactylus / arachne / core / URLFetcher.java
index e0062e3..ea109d0 100644 (file)
@@ -121,6 +121,10 @@ class URLFetcher implements Runnable, ParserListener {
                        urlInputStream = urlConnection.getInputStream();
                        hashInputStream = new MessageDigestInputStream(urlInputStream, messageDigest);
                        Parser parser = parserFactory.getParser(contentType);
+                       if (parser == null) {
+                               logger.log(Level.INFO, "No parser found for “" + contentType + "”.");
+                               return;
+                       }
                        parser.parse(this, hashInputStream, "UTF-8");
                        hash = messageDigest.digest();
                } catch (IOException ioe1) {
@@ -139,9 +143,13 @@ class URLFetcher implements Runnable, ParserListener {
                URL newLink = null;
                try {
                        newLink = new URL(url, linkTarget);
-                       Page newPage = Page.fromURL(newLink);
-                       if (newPage != null) {
-                               collectedPages.add(newPage);
+                       try {
+                               Page newPage = Page.fromURL(newLink);
+                               if (newPage != null) {
+                                       collectedPages.add(newPage);
+                               }
+                       } catch (IllegalArgumentException iae1) {
+                               /* ignore. */
                        }
                } catch (MalformedURLException mue1) {
                        logger.log(Level.WARNING, "Could not create URL from “" + url + "” and “" + linkTarget + "”.", mue1);