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

Reply via email to