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