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