2007/7/18, Yang Paulex <[EMAIL PROTECTED]>:
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) <[EMAIL PROTECTED]>:
>
>
> [
>
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