[ https://issues.apache.org/jira/browse/IO-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Niall Pemberton resolved IO-128. -------------------------------- Resolution: Fixed Fix Version/s: 1.4 Assignee: Niall Pemberton Antonio, Tthanks for reporting this - I have added null checks after the file names have been "normalized" and if theres an error (i.e. they return null) then its now throwing an IllegalArgumentException with the message "Error normalizing one or both of the file names" - hopefully that will make it less confusing if errors occur when the names are "normalized". http://svn.apache.org/viewvc?view=rev&revision=584325 > NPE on FilenameUtils.equalsNormalizedOnSystem() > ----------------------------------------------- > > Key: IO-128 > URL: https://issues.apache.org/jira/browse/IO-128 > Project: Commons IO > Issue Type: Bug > Components: Utilities > Affects Versions: 1.2, 1.3, 1.3.1, 1.3.2 > Reporter: Antonio Gallardo > Assignee: Niall Pemberton > Fix For: 1.4 > > > The following code in commons-io (1.3.2) throws an NPE exception: > org.apache.commons.io.FilenameUtils > .equalsNormalizedOnSystem( > "//a.html", > "//ab.html"); > And here is the exception: > java.lang.NullPointerException: The strings must not be null > at org.apache.commons.io.IOCase.checkEquals(IOCase.java:141) > at org.apache.commons.io.FilenameUtils.equals(FilenameUtils.java:984) > at > org.apache.commons.io.FilenameUtils.equalsNormalizedOnSystem(FilenameUtils.java:956) > at CodeSnippet_32.run(CodeSnippet_32.java:4) > at > org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain1.eval(ScrapbookMain1.java:20) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain.evalLoop(ScrapbookMain.java:54) > at > org.eclipse.jdt.internal.debug.ui.snippeteditor.ScrapbookMain.main(ScrapbookMain.java:35) > I think it is wrong a message "The strings must not be null", since there is > not a null string involved in the call. > Interesting is if both or 1 of the strings is null, it did not throws an > exception. > Additional comment from Niall Pemberton (on the dev mail list): > The problem is that the FilenameUtils's normalize(String) method > returns "null" if it thinks the file names are invalid - which in your > case it seems to be doing so for both file names. > So I guess theres two issues here - you're right the error is > misleading and FilenameUtils should check the names again after > calling normalize() for nulls and throw a more appropriate message. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.