Uploaded image for project: 'Commons Validator'
  1. Commons Validator
  2. VALIDATOR-391

UrlValidator.isValid throws exception for FILEURLs

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.0
    • Fix Version/s: 1.6
    • Component/s: Routines
    • Labels:

      Description

      In UrlValidator.java from v1.5.0, there is the following section which generates a null pointer exception, rendering isValid unusable for FILE URLs.

      org/apache/commons/validator/routines/UrlValidator.java
      if ("file".equals(scheme)) {// Special case - file: allows an empty authority
                  if (!"".equals(authority)) {
                      if (authority.contains(":")) { // but cannot allow trailing :
                          return false;
                      }
                  }
                  // drop through to continue validation
              }
      

      In the case of a file URL given in my example below, authority is null, and thusly doesn't equal a blank string, so it drops down and calls authority.contains, which generates a NullPointerException.

      Example to generate exception
      File localFile = new File("c:\\path\\to\\dir\\");
      URL localURL = localFile.toURI().toURL();
      String urlString = localURL.toString(); // "file:/C:/path/to/dir/"
      String[] schemes = {"file"};
      UrlValidator urlValidator = new UrlValidator(schemes);
      
      urlValidator.isValid(urlString); // null pointer exception
      

        Attachments

        1. UrlValidator.java.patch
          0.7 kB
          Jason Loomis
        2. UrlValidatorTest.java.patch
          0.8 kB
          Jason Loomis

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mark_scott_jr Mark E. Scott, Jr.
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: