Filenames are a lot like environment variables, and we already have code that rejects NUL chars in environment variable names:
// Check that name is suitable for insertion into Environment map private static void validateVariable(String name) { if (name.indexOf('=') != -1 || name.indexOf('\u0000') != -1) throw new IllegalArgumentException ("Invalid environment variable name: \"" + name + "\""); } On Tue, Feb 26, 2013 at 4:33 PM, Mike Duigou <mike.dui...@oracle.com> wrote: > Hi Dan; > > External link to the bug (will hopefully work soon): > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8003992 > > I would like to better understand why silently removing the garbage null > characters is the right answer here. > > If null is an invalid character for the underlying operating system or > filesystem then perhaps an error should be signalled. > > Mike > > On Feb 26 2013, at 16:10 , Dan Xu wrote: > > > Hi All, > > > > Please help review the fix for JDK-8003992: File and other classes in > java.io do not handle embedded nulls properly. > > > > Java IO, not like NIO, does not check NUL character in the given file > path name, which brings confusion to Java users. This fix is going to > address this issue by removing any NUL character from the given file path. > And it also cleans and optimizes the path-name normalization logic. Thanks! > > > > Bug: https://jbs.oracle.com/bugs/browse/JDK-8003992 > > webrev: http://cr.openjdk.java.net/~dxu/8003992/webrev.00/ > > > > -Dan > >