harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Qiu" <sean.xx....@gmail.com>
Subject Re: [jira] Created: (HARMONY-5979) [classlib][luni] - File.deleteOnExit has different behaviours with RI
Date Thu, 11 Sep 2008 13:19:42 GMT

2008/9/11 Tim Ellison <t.p.ellison@gmail.com>:
> Regis wrote:
>> The behavior of RI may leave some files marked as deleteOnExit after vm
>> exit, so
>> it's confused why marked files wasn't deleted after vm exit, and it
>> doesn't match the
>> semantic of this method. Maybe it's RI's bug?
> In general you can't tell what order will succeed in deleting all the
> files because you can't accurately determine the file system
> dependencies between them.
> Based on your test program, Harmony attempts the deletion in the order
> the files were added to the list, and the RI attempts them in the
> reverse order.  I was just suggesting we modify Harmony to also do
> reverse order so any application that assumes this will continue to work.
> I agree it is a compatibility rather than spec' compliance issue though.
> Regards,
> Tim
>> Tim Ellison wrote:
>>> I suggest Harmony changes to match the behavior of the RI in this case.
>>> It will avoid unnecessary incompatibilities and seems logical for
>>> programs that create dir and mark for deleteOnExit, then create files
>>> and mark for deleteOnExit etc. as they go.
>>> Regards,
>>> Tim
>>> Regis Xu (JIRA) wrote:
>>>> [classlib][luni] - File.deleteOnExit has different behaviours with RI
>>>> ---------------------------------------------------------------------
>>>> Key: HARMONY-5979 URL:
>>>> https://issues.apache.org/jira/browse/HARMONY-5979 Project: Harmony
>>>> Issue Type: Bug Components: Classlib Affects Versions: 5.0M7
>>>> Reporter: Regis Xu Fix For: 5.0M8
>>>> consider the following test:
>>>> File f1 = new File("d1"); f1.mkdirs(); File f2 = new File("d1/d2");
>>>> f2.mkdirs(); File f3 = new File("d1/d2/f1");
>>>> f3.createNewFile();
>>>> f3.deleteOnExit(); f2.deleteOnExit(); f1.deleteOnExit();
>>>> RI leaves d1 and d2, while Harmony deletes all of the three files. If
>>>> we change the order of invoke deleteOnExit to f2.deleteOnExit();
>>>> f3.deleteOnExit(); f1.deleteOnExit(); RI leaves d1, Harmony also
>>>> detete all the three files. It seems RI delete files in the reverse
>>>> order of invoking deleteOnExit. And spec doesn't mention which order
>>>> should be used, is it a non-bug difference, or we should fix it to be
>>>> compatible with RI?

Best Regards
Sean, Xiao Xia Qiu

China Software Development Lab, IBM

View raw message