I confirmed - this is a bug with a nested context. Just opened a Jira:
https://issues.apache.org/jira/browse/CAY-1489
We'll work on fixing it.
Andrus
On Oct 7, 2010, at 7:01 PM, Jeff Rorison wrote:
> 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 : Fri Oct 08 2010 - 12:38:01 UTC