RE: Hollow state

From: David Solis (dsoli..egosoft.com.mx)
Date: Wed Feb 19 2003 - 13:01:16 EST

  • Next message: Andrus Adamchik: "Re: Hollow state"

    I looked the cayenne source code and I found CayenneDataObject already
    checks the hollow state and refetch the object.
    The execption is in the line:
     
                dataContext.refetchObject(objectId);

    It seems to me dataContext is null.
     
    By the way Tapestry changed the way to persist values. Maybe is a
    question to the Tapestry list.
     
    Any clues?
     
    David

    -----Original Message-----
    From: David Solis [mailto:dsoli..egosoft.com.mx]
    Sent: Wednesday, February 19, 2003 11:30 AM
    To: cayenne-use..bjectstyle.org
    Subject: Hollow state

    I'm developing an application with Cayenne 1.0a5 and Tapestry 2.4 alpha
    3. I'm getting exceptions like this:
     
    java.lang.NullPointerException
    *
    org.objectstyle.cayenne.CayenneDataObject.readProperty(CayenneDataObject
    .java:183)

    *
    com.ixe.isis.ixenetadmin.model._CustomerService.getService(_CustomerServ
    ice.java:134)

    *
    com.ixe.isis.ixenetadmin.model.CustomerService.getDescription(CustomerSe
    rvice.java:18)

    *
    com.ixe.isis.ixenetadmin.pages.customer.ServiceSignatureGroups.getTitle(
    ServiceSignatureGroups.java:64)

    * java.lang.reflect.Method.invoke(Native Method)

    * ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java)

    * ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java)

    *
    ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.j
    ava)

    *
    ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java)

    * ognl.OgnlRuntime.getProperty(OgnlRuntime.java)

    * ognl.ASTProperty.getValueBody(ASTProperty.java)

    * ognl.SimpleNode.getValue(SimpleNode.java)

    * ognl.Ognl.getValue(Ognl.java)

    * ognl.Ognl.getValue(Ognl.java)

    *
    net.sf.tapestry.binding.ExpressionBinding.resolveProperty(ExpressionBind
    ing.java:232)

    *
    net.sf.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.ja
    va:225)

    *
    net.sf.tapestry.binding.AbstractBinding.getString(AbstractBinding.java:1
    41)
     
    The real problem is some cayenne EOs are in hollow state and refetch is
    not automatic.
     
    ixenetadmin/ServiceSignatureGroups/customer {[]<oid:
    com.ixe.isis.ixenetadmin.model.Customer: <RIM_NO: 34177>; state:
    hollow>}
    ixenetadmin/ServiceSignatureGroups/service {[]<oid:
    com.ixe.isis.ixenetadmin.model.CustomerService: <ID_CLIENTE_SERVICIO:
    4e5817c2-c0a8-141e-0069-cc0e0373ff20>; state: hollow>}
     
    I can "patch" the code to refetch every EO in hollow state, but is this
    the "normal" behavior?
     
    Note: these objects are persistant properties to the page.
     
    I developed a prototype using Tapestry 2.3 and didn't experience
    something similar.
     
    Any ideas?
     
    Regards
     
    David
     
     



    This archive was generated by hypermail 2.0.0 : Wed Feb 19 2003 - 13:04:31 EST