harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Spark Shen" <smallsmallor...@gmail.com>
Subject Re: [classlib][beans]PersistentDelegates implementations(Re: [jira] Updated: (HARMONY-4473) [classlib][beans] Current bean implementation does not persist awt.Choice properly)
Date Wed, 18 Jul 2007 07:19:42 GMT
2007/7/18, Yang Paulex <paulex.yang@gmail.com>:
>
> Spark,
>
> I noticed that you were working at the persistent delegation
> implementations
> recently, thanks for this enhancement.

I am now adding  persistence delegate for some classes of awt package.
Please refer to HY-4473 for detailed information.

But I'm a little confused on this
> patch and some others before, seems you are adding the implementations to
> java.beans package, but in our former implementations, there are some for
> primitive types in o.a.h.beans, I suppose they are actually stuffs in same
> category, so does it make sense to make them in same package?


I planed to put all the persistence delegates into o.a.h.beans package, but
encounter problem. Persistence delegate of awt classes need to first check
whether target value and new value will be mutable, as below´╝Ü
<snip>
PersistenceDelegate pd = enc
    .getPersistenceDelegate(targetVal.getClass());
if (!pd.mutatesTo(targetVal, newVal)) {
    Statement setterStm = new Statement(oldInstance, "add", new Object[] {
oldVal });
    enc.writeStatement(setterStm);
}
</snip>
As you can see, put these delegates into o.a.h.beans package would result in
tweaked code.

I agree to put all delegates into one place. Since that way, code would be
more readable. And given the awt delegates implementation, my preferred
destination is java.beans package.


2007/7/18, spark shen (JIRA) <jira@apache.org>:
> >
> >
> >      [
> >
> https://issues.apache.org/jira/browse/HARMONY-4473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> ]
> >
> > spark shen updated HARMONY-4473:
> > --------------------------------
> >
> >     Attachment: HY-4473.patch
> >
> > > [classlib][beans] Current bean implementation does not persist
> > awt.Choice properly
> > >
> >
> ----------------------------------------------------------------------------------
> > >
> > >                 Key: HARMONY-4473
> > >                 URL:
> https://issues.apache.org/jira/browse/HARMONY-4473
> > >             Project: Harmony
> > >          Issue Type: Bug
> > >          Components: Classlib
> > >            Reporter: spark shen
> > >            Assignee: Tony Wu
> > >         Attachments: HY-4473.patch, HY-4473.sh
> > >
> > >
> > > The following test case will throw StackOverflowError on Harmony but
> > pass on RI:
> > > public void test_writeObject_java_awt_Choice() {
> > >         ByteArrayOutputStream byteArrayOutputStream = new
> > ByteArrayOutputStream();
> > >         XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
> > >             byteArrayOutputStream));
> > >         Choice choice = new Choice();
> > >         encoder.writeObject(choice);
> > >         encoder.close();
> > >         DataInputStream stream = new DataInputStream(new
> > ByteArrayInputStream(
> > >                 byteArrayOutputStream.toByteArray()));
> > >         XMLDecoder decoder = new XMLDecoder(stream);
> > >         Choice aChoice = (Choice) decoder.readObject();
> > >         assertEquals(choice.getFocusTraversalKeysEnabled(), aChoice
> > >                 .getFocusTraversalKeysEnabled());
> > >     }
> > > Besides Choice, the awt classes need special treatment are:
> > > SystemColor,
> > > TextAttribute,
> > > MenuShortcut,
> > > awt.Component,
> > > awt.Container,
> > > Menu,
> > > MenuBar,
> > > awt.List,
> > > BorderLayout,
> > > CardLayout,
> > > GridLayout,
> > > Insets,
> > > Point,
> > > ScrollPane
> >
> > --
> > This message is automatically generated by JIRA.
> > -
> > You can reply to this email to add a comment to the issue online.
> >
> >
>
>
> --
> Paulex Yang
> China Software Development laboratory
> IBM
>



-- 
Spark Shen
China Software Development Lab, IBM
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message