Review Request for JDK-8003992: File and other classes in do not handle embedded nulls properly

David Holmes david.holmes at
Wed Feb 27 02:52:07 UTC 2013

On 27/02/2013 12:31 PM, Dan Xu wrote:
> Thank you, Mike.
> The reason not to throw out an exception is for the backward
> compatibility. Due to that, the constructorof File object with NUL
> willnever fail.While in NIO, it is defined in the spec to throw out
> exceptions when invalid NUL character is found.

That still gives the choice of deleting the nul characters, or treating 
them as a terminator.

And do we really want/need to maintain compatability in this case 
anyway? What reasonable expectations can anyone have if they have 
embedded nuls?


> -Dan
> On 02/26/2013 04:33 PM, Mike Duigou wrote:
>> Hi Dan;
>> External link to the bug (will hopefully work soon):
>> 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
>>> 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:
>>> webrev:
>>> -Dan

More information about the core-libs-dev mailing list