Andrus Adamchik <andrus <at> objectstyle.org> writes:
>
> Hi Jeff,
>
> From the lines in the stack trace, looks like
context.getObjectStore().getDataRowCache() returns
> null, causing an NPE downstream. Now wondering why that can happen... Are you
> serializaing/deserializaing your DataContext?
>
> Andrus
>
> On Oct 6, 2010, at 9:04 PM, Rorison, Jeff wrote:
>
> > I am using 3.0 (final) and am having some issues using
> > context.createFromDataRow(...)
> >
> > ObjectResolver is throwing an NPE on what looks like updating snapshots.
> > Code:
> >
> > SQLTemplate template = .....
> > template.setFetchingDataRows(true);
> > ...
> > List res = this.dataContext.performQuery(template);
> > Subject sub = (Subject)context.objectFromDataRow(Subject.class,
> > (DataRow)res.get(0), true);
> >
> > Err:
> > java.lang.NullPointerException at
> > org.apache.cayenne.access.ObjectResolver.objectsFromDataRows(ObjectResol
> > ver.java:117)
> > at
> > org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows
> > (ObjectResolver.java:94)
> > at
> > org.apache.cayenne.access.DataContext.objectsFromDataRows(DataContext.ja
> > va:597)
> > at
> > org.apache.cayenne.access.DataContext.objectFromDataRow(DataContext.java
> > :646)
> > ...........
> >
> > What, if anything am I doing incorrectly here? I have tried changing the
> > refresh, and most of the other API calls with no success?
> >
> > Has this changed any in 3.0, as I see a few differences between the API
> > and the docs?
>
Andrus,
We are running in the Felix OSGi container and are using a Java Proxy object
(ObjectContext) to provide the context from a service, no
serialization/deserialization.
Since the proxy object disallows anything except the interface even a cast to
DataContext is disallowed. In most cases the ObjectContext is all we want to
provide, but in a few we need a DataContext to perform a little more magic.
So, from the original we create a child ObjectContext which we can cast to
DataContext so we can do some Cayenne magic.
This is where the errors came in to play with ...objectFromDataRow().
cheers,
jeff
This archive was generated by hypermail 2.0.0 : Thu Oct 07 2010 - 16:05:43 UTC