harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Deakin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6483) [classlib][luni] No IllegalArgumentException thrown by PutField.write() when writing to the wrong stream
Date Fri, 26 Mar 2010 11:14:27 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850085#action_12850085
] 

Oliver Deakin commented on HARMONY-6483:
----------------------------------------

It's specced that we throw an IllegalArgumentException for the above case, as the RI does.
Looks like our java.io.EmulatedFieldsForDumping class needs to keep track of the ObjectOutputStream
that created it and check against that stream when it's write() method is called. I'll put
together a fix and test case.

> [classlib][luni] No IllegalArgumentException thrown by PutField.write() when writing
to the wrong stream
> --------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-6483
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6483
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Oliver Deakin
>            Assignee: Oliver Deakin
>
> Running the following test:
> import java.io.*;
> import java.io.ObjectOutputStream.PutField;
> class Test2 {
>     public static void main(String[] args) throws Exception {
>         ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("testfile")));
>         oos.writeObject(new OutputObject());
>     }
>     static class OutputObject implements Serializable {
>         private void writeObject(ObjectOutputStream oos) throws IOException {
>             ObjectOutputStream oos2 = new ObjectOutputStream(new FileOutputStream(new
File("testfile2")));
>             ObjectOutputStream.PutField putField = oos.putFields();
>             putField.write(oos2);
>         }
>     }
> }
> on the RI produces:
> Exception in thread "main" java.lang.IllegalArgumentException: wrong stream
>         at java.io.ObjectOutputStream$PutFieldImpl.write(ObjectOutputStream.java:1670)
>         at Test2$OutputObject.writeObject(Test2.java:14)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:63)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
>         at java.lang.reflect.Method.invoke(Method.java:624)
>         at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:973)
>         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1494)
>         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1425)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
>         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:359)
>         at Test2.main(Test2.java:7)
> whereas on Harmony it completes without exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message