You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2017/05/08 19:04:39 UTC

[2/4] lucene-solr:jira/solr-10290: Fix link checker to accept some absolute URLs that aren't valid URIs

Fix link checker to accept some absolute URLs that aren't valid URIs


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/0bfa433d
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/0bfa433d
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/0bfa433d

Branch: refs/heads/jira/solr-10290
Commit: 0bfa433d7ac1b0166069986e971588b2095b9d2d
Parents: 58c717c
Author: Chris Hostetter <ho...@apache.org>
Authored: Mon May 8 11:54:24 2017 -0700
Committer: Chris Hostetter <ho...@apache.org>
Committed: Mon May 8 11:54:24 2017 -0700

----------------------------------------------------------------------
 .../tools/CheckLinksAndAnchors.java             | 21 ++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/0bfa433d/solr/solr-ref-guide/tools/CheckLinksAndAnchors.java
----------------------------------------------------------------------
diff --git a/solr/solr-ref-guide/tools/CheckLinksAndAnchors.java b/solr/solr-ref-guide/tools/CheckLinksAndAnchors.java
index 08119fa..6ed7aa4 100644
--- a/solr/solr-ref-guide/tools/CheckLinksAndAnchors.java
+++ b/solr/solr-ref-guide/tools/CheckLinksAndAnchors.java
@@ -2,6 +2,8 @@
 import java.io.*;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.MalformedURLException;
 import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.ArrayList;
@@ -118,10 +120,21 @@ public class CheckLinksAndAnchors {
               System.err.println(file.toURI().toString() + " contains relative link w/o an '#anchor': " + href);
             }
           }
-        } catch (URISyntaxException ex) {
-          problems++;
-          System.err.println(file.toURI().toString() + " contains link w/ invalid syntax: " + href);
-          System.err.println(" ... " + ex.toString());
+        } catch (URISyntaxException uri_ex) {
+          // before reporting a problem, see if it can be parsed as a valid (absolute) URL
+          // some solr examples URLs have characters that aren't legal URI characters
+          // Example: "ipod^3.0", "foo:[*+TO+*]", etc...
+          boolean href_is_valid_absolute_url = false;
+          try {
+            // if this isn't absolute, it will fail
+            final URL ignored = new URL(href);
+            href_is_valid_absolute_url = true;
+          } catch (MalformedURLException url_ex) {
+            problems++;
+            System.err.println(file.toURI().toString() + " contains link w/ invalid syntax: " + href);
+            System.err.println(" ... as URI: " + uri_ex.toString());
+            System.err.println(" ... as URL: " + url_ex.toString());
+          }
         }
       }
     }