Re: Cleaning up ROP

From: Kevin Menard (kmenar..ervprise.com)
Date: Sun Nov 11 2007 - 11:12:05 EST

  • Next message: Alexander Lamb (dev): "Re: [ANN] Cayenne 3.0M2 released"

    On 11/11/07 9:28 AM, "Andrus Adamchik" <andru..bjectstyle.org> wrote:

    >
    > On Nov 8, 2007, at 10:19 AM, Kevin Menard wrote:
    >
    >>
    >> 1) Serialization -- Fields are controlled by getters/setters and as
    >> such
    >> should probably be marked transient, allowing a fault to resolve
    >> values
    >> upon deserialization.
    >
    > I don't understand this one. Why?

    Consider the following Tapestry syntax:

    <tr jwcid=..or" source="ognl:paintings" value="ognl:painting">
       <span jwcid=..nsert" value="ognl:painting.title"/>
    </tr>

    I've simplified this because it's not a form and thus no rewind cycle, but
    that's really when the problem occures. The basic issue is that when
    "painting" is assigned and thus serialized (via the Squeezer), the "title"
    field is null. In the pass through the loop, the "title" field is resolved
    and the local field changed from null to whatever the title is. On a form
    rewind, Tapestry reserializes all values to see if anything has changed. It
    essentially has a map keyed on serialized values to objects. When the
    serialized value changes, as is the case here due to the change in the
    "title" field, it can't find it in the map and attempts to reconstruct the
    object.

    This is how the context was carried along using CDO. As it turns out, the
    context was never serialized in my case -- the fully registered object was
    just pulled out of Tapestry's map.

    Hopefully that made some sense.

    -- 
    Kevin
    



    This archive was generated by hypermail 2.0.0 : Sun Nov 11 2007 - 11:12:45 EST