Hey David,
So I'm guessing the dataContext object is a persistent property on your
page. I don't believe anything has changed with persistent properties in
tapestry. The following should work:
private DataContext dataContext;
public DataContext getDataContext() {
return dataContext;
}
public void setDataContext(DataContext ctxt) {
dataContext = ctxt;
fireObservedChange("dataContext ", dataContext);
}
public void detach() {
dataContext = null;
super.detach();
}
Are you doing something different?
Cheers,
Eric
-----Original Message-----
From: David Solis [mailto:dsoli..egosoft.com.mx]
Sent: Wednesday, February 19, 2003 1:01 PM
To: cayenne-use..bjectstyle.org
Subject: 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.jav
a:183)
*
com.ixe.isis.ixenetadmin.model._CustomerService.getService(_CustomerService.
java:134)
*
com.ixe.isis.ixenetadmin.model.CustomerService.getDescription(CustomerServic
e.java:18)
*
com.ixe.isis.ixenetadmin.pages.customer.ServiceSignatureGroups.getTitle(Serv
iceSignatureGroups.java:64)
* java.lang.reflect.Method.invoke(Native Method)
* ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java)
* ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java)
*
ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java)
* 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(ExpressionBinding.
java:232)
*
net.sf.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:2
25)
*
net.sf.tapestry.binding.AbstractBinding.getString(AbstractBinding.java:141)
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 message, including any attachments, contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, please contact sender immediately by reply e-mail and destroy all copies. You are hereby notified that any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited.
TIAA-CREF
**********************************************************************
This archive was generated by hypermail 2.0.0 : Wed Feb 19 2003 - 13:12:05 EST