You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Leo Li (JIRA)" <ji...@apache.org> on 2007/04/13 04:42:15 UTC

[jira] Closed: (HARMONY-2239) [classlib][luni]ObjectOutputStream fails to call ReplaceObject while the serialized class is int.class

     [ https://issues.apache.org/jira/browse/HARMONY-2239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Leo Li closed HARMONY-2239.
---------------------------


> [classlib][luni]ObjectOutputStream fails to call ReplaceObject while the serialized class is int.class
> ------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2239
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2239
>             Project: Harmony
>          Issue Type: Bug
>            Reporter: Leo Li
>         Assigned To: Paulex Yang
>         Attachments: patch-2239.diff
>
>
> Here is the testcase:
> public class SerTest extends TestCase {
>     private static class TestSerializable implements Serializable{
>        
>         protected Object writeReplace() throws ObjectStreamException {
>            return int.class;           
>         }
>     }
>     
>     private static class ObjectOutputStreamWithReplace extends ObjectOutputStream {
>         public ObjectOutputStreamWithReplace(OutputStream out)
>                 throws IOException {
>             super(out);          
>             enableReplaceObject(true);
>         }
>         protected Object replaceObject(Object obj) throws IOException {
>             System.out.println("replaceObject");
>         	return new Double(20);
>         }
>     }
>     
>     public void test_replaceObject() throws Exception {
>         ByteArrayOutputStream baos = new ByteArrayOutputStream();
>         ObjectOutputStreamWithReplace oos = new ObjectOutputStreamWithReplace(baos);
>         oos.writeObject(new TestSerializable());
>         oos.flush();
>         ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream (baos.toByteArray()));
>         Object obj = ois.readObject();
>         oos.close();
>         ois.close();
>         
>         assertTrue("replaceObject has not been called", (obj instanceof Double));
>     }
> }
> RI passes.
> Harmony fails.

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