Which file(s) are you concerned about truncating/damaging? The code I'm
impacting is for creating a new lock file. Where is the potential for
truncating/damaging that you both are referring to?
Is this sufficient (plus the proper exception handling of course) ?
//lockStream = new FileOutputStream(lockFileName);
fc = FileChannel.open(new
File(lockFileName).toPath(), CREATE_NEW, WRITE);
//fc = lockStream.getChannel();
Thanks,
Jim
On 11/10/2012 05:54 AM, Alan Bateman wrote:
On 09/11/2012 22:41, Jason Mehrens wrote:
Jim,
You might just want to change the code to create and close a
FileOutputStream in a way that doesn't truncate or damage the target
file. Or maybe use the NIO file code if that is possible. See BUG
ID 4420020.
Jason
I think so too. As it needs a FileChannel anyway, then it may be
simpler to just use FileChannel.open(lf, WRITE), that won't truncate
the file and will also throw a useful IOException in the event that it
fails. As there are specific IOException thrown for specific cases
then it may be possible to eliminate the loop completely for I/O error
cases.
-Alan
--
Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
Oracle Java Platform Group | Core Libraries Team
35 Network Drive
Burlington, MA 01803
jim.g...@oracle.com