Log hash after fetching.
[arachne.git] / src / net / pterodactylus / arachne / core / URLFetcher.java
index e0062e3..59ad623 100644 (file)
@@ -16,6 +16,7 @@ import net.pterodactylus.arachne.parser.Parser;
 import net.pterodactylus.arachne.parser.ParserFactory;
 import net.pterodactylus.arachne.parser.ParserListener;
 import de.ina.util.io.MessageDigestInputStream;
+import de.ina.util.number.Hex;
 import de.ina.util.validation.Validation;
 
 /**
@@ -121,8 +122,13 @@ 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();
+                       logger.log(Level.FINE, "Hashed “" + url + "” to “" + Hex.toHex(hash) + "”.");
                } catch (IOException ioe1) {
                        logger.log(Level.WARNING, "Could not fetch “" + url + "”.", ioe1);
                }
@@ -139,9 +145,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);