Bryan, I logged it in Jira. Will investigate:
http://objectstyle.org/jira/browse/CAY-499
Andrus
On Apr 11, 2006, at 4:07 AM, Bryan Lewis wrote:
I put the 1.2B1 jar on our servers over the weekend and got one little
surprise today... an exception when a prefetch is specified on a
caching
query. Here's some code that reproduces it, then the stack trace.
public static List fetchBankruptciesForPastYear(DataContext dc)
{
// Omitting the expression details...
SelectQuery query = new SelectQuery("BKFiler", exp);
query.setCachePolicy(QueryMetadata.SHARED_CACHE);
String queryName = "BCI";
query.setName(queryName);
query.setRefreshingObjects(false);
// Omitting the orderings details...
query.addOrderings(orderings);
// This line works okay for the first fetch, but causes an
exception
// on subsequent (non-refreshing) fetches. Removing this line
avoids
// the exception.
query.addPrefetch("company");
return dc.performQuery(query);
}
java.lang.NullPointerException
org.objectstyle.cayenne.access.ObjectTreeResolver
$TreeBuilder.addNode(ObjectTreeResolver.java:218)
org.objectstyle.cayenne.access.ObjectTreeResolver
$TreeBuilder.startDisjointPrefetch(ObjectTreeResolver.java:178)
org.objectstyle.cayenne.access.ObjectTreeResolver
$TreeBuilder.startUnknownPrefetch(ObjectTreeResolver.java:201)
org.objectstyle.cayenne.query.PrefetchTreeNode.traverse
(PrefetchTreeNode.java:209)
org.objectstyle.cayenne.query.PrefetchTreeNode.traverse
(PrefetchTreeNode.java:216)
org.objectstyle.cayenne.access.ObjectTreeResolver
$TreeBuilder.buildTree(ObjectTreeResolver.java:136)
org.objectstyle.cayenne.access.ObjectTreeResolver.resolveObjectTree
(ObjectTreeResolver.java:100)
org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectCo
nversion(DataDomainQueryAction.java:372)
org.objectstyle.cayenne.access.DataDomainQueryAction.execute
(DataDomainQueryAction.java:151)
org.objectstyle.cayenne.access.DataDomain.onQuery(DataDomain.java:715)
org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery
(ObjectContextQueryAction.java:249)
org.objectstyle.cayenne.access.DataContextQueryAction.execute
(DataContextQueryAction.java:90)
org.objectstyle.cayenne.access.DataContext.onQuery(DataContext.java:
1320)
org.objectstyle.cayenne.access.DataContext.performQuery
(DataContext.java:1309)
model.BKFiler.fetchBankruptciesForPastYear(BKFiler.java:68)
model.Model.fetchBankruptciesForPastYear(Model.java:511)