On 9/20/06, Richard Liang <[EMAIL PROTECTED]> wrote:
On 9/19/06, Andrew Zhang <[EMAIL PROTECTED]> wrote:
> On 9/18/06, Richard Liang <[EMAIL PROTECTED]> wrote:
> >
> > Hello,
> >
> > One Apache Derby test[1] fails on Harmony. It seems that RI always
> > sync the FileOutputStream and FileChannel after each "write", which is
> > different from Harmony. But there is no explicit description in Java
> > Spec. Shall we follow RI? Thanks a lot.
> >
> > The following test cases could demonstrate this issue.
> >
> > public void testFile() {
> > File derbyLog = new File("d:\\", "derby1.log");
> >
> > try {
> > FileOutputStream fos = new FileOutputStream(derbyLog);
> > fos.write(0x41);
> > assertEquals(1, derbyLog.length());
> > } catch (Exception e) {
> > e.printStackTrace();
> > }
> > }
> >
> > public void testFileChannel() {
> > File derbyLog = new File("d:\\", "derby2.log");
> >
> > try {
> > FileOutputStream fos = new FileOutputStream(derbyLog);
> > FileChannel fc = fos.getChannel();
> > fc.write(ByteBuffer.wrap(new byte[]{0x41, 0x42}));
> > assertEquals(2, derbyLog.length());
> > } catch (Exception e) {
> > e.printStackTrace();
> > }
> > }
>
>
> Richard, we're fooled by "derbyLog.length()". :-) That's the root of
evil!
>
> Harmony uses "FindFirstFile" to get file attribute, which may not be
latest
> information of file. MSND points out "In rare cases, file attribute
> information on NTFS file systems may not be current at the time you call
> this function." That's why the test failed against Harmony. If using
> "GetFileAttributeEx" instead, the test passes against Harmony. :-) But
I
> don't think the test is theoretically stable, since the file is not
opened
> with "sync" flag. :-) We could use RandomAccessFile("file","rwd(s)") for
> test. Let's file a JIRA and fix it!
Thank you very much, Andrew. I have raised a JIRA [1] for this issue.
Patch updated. :-)
[1] https://issues.apache.org/jira/browse/HARMONY-1497
>
> [1]
> >
http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/logStream.java?view=co
> > --
> > Richard Liang
> > China 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
>
>
--
Richard Liang
China 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