On 9/1/06, Stepan Mishura <[EMAIL PROTECTED]> wrote:
On 8/31/06, Stepan Mishura wrote: > > On 8/30/06, Andrew Zhang wrote: > > > <SNIP> > > > > > > If I understoond correctly, new FileHandler() creates temporary file > > for > > > > logging (its name is defined by default configuration properties). > > That > > > is > > > > true for Harmony and RI. Right? > > > > > > > > > Stepan, you missed something here. :) > > > Both Harmony and RI creates a file (not temporary) for logging, and RI > > > created one more file(temporary) for locking. > > > RI tries to delete the temporary .lck file when fileHandler.close () > is > > > invoked. Harmony has nothing to be deleted. :) > > > > > > IOW, Harmony uses different locking approach for log-files and the test > > above demonstrate side-effect of different approaches. Right? > > > Yes, exatcly. > > IMO, we should add a note to the documentation: why we chose different > > locking approach. > > > Rather than adding a note to source code, I think it's more helpful to > document the difference on the test. > > Yes, documenting our implementation design is helpful, but I think there's > no need to document the design differences between Harmony and RI. > > We don't care the design and implementation of RI, do we? So I suggest > document some words on the test case, like "RI fails here because ....". > > Comments/objections? Thanks! > > > BTW, if two VMs tries to open the same file for logging how this conflict > is resolved by Harmony if there is not lock file? > > It seems that nobody understood the question.
No. Your description is very clear, but I was on vacation yesterday. OK, I'll try to put the
question in other words: if there is 2 VM running on the same machine and on both VMs new FileHandler() is invoked then there is a files conflict. And it is possible to resolve such kind of conflict only by creating lock-file.
RI output: a a.1 a.lck a.1.lck Harmony output a a.1 The test case is simple if you'd like to try, just run two times, and check the log file in your disk. public void test_FileHandler() throws Exception { FileHandler handler = new FileHandler("a"); handler.publish(new LogRecord(Level.SEVERE, "msg")); int count = 0; while (count++ < 60) { Thread.sleep(1000); } handler.close(); } Right?
Thanks, Stepan. > > > > > > > > > RI tries to delete the created file if FileHandler.close() is > > invoked. > > > And > > > > > Harmony doesn't. Why? > > > > > > > > > > Thanks, > > > > > Stepan. > > > > > > > > > > If we revise the MockSecurityManager a little, to allow .lck file > > > > > > permission, > > > > > > > > > > > > public void checkPermission(Permission perm) { > > > > > > if (perm instanceof FilePermission) { > > > > > > if (perm.getName().indexOf(".lck") == -1) { > > > > > > System.out.println("check " + perm.getName > > ()); > > > > > > throw new SecurityException(); > > > > > > } > > > > > > } > > > > > > } > > > > > > > > > > > > The test will pass both against RI and Harmony. > > > > > > > > > > > > So I'd suggest to leave it as "non-bug difference from RI". > > > > > > > > > > > > Any comments? Thank you! > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Andrew Zhang > > > > > > China Software Development Lab, IBM > > > > ------------------------------------------------------ Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Andrew Zhang China Software Development Lab, IBM