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