Hi Ari,
let me check it out.
AFAIK you are using your own trunk builds, so it is not critical to
add the fix to the M1 tag (that would require another round of
regression testing)?
Andrus
On Jul 12, 2007, at 11:51 AM, Ari Maniatis (JIRA) wrote:
> DataChannelCallbackInterceptor.onQuery NPE
> ------------------------------------------
>
> Key: CAY-830
> URL: https://issues.apache.org/cayenne/browse/CAY-830
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 3.0
> Reporter: Ari Maniatis
> Assignee: Andrus Adamchik
> Priority: Blocker
> Fix For: 3.0
>
>
> org.apache.cayenne.map.AshwoodEntitySorter line 309 has the line of
> code:
> QueryResponse response = context.getChannel().onQuery(null, query);
>
> However,
> org.apache.cayenne.intercept.DataChannelCallbackInterceptor.onQuery
> (ObjectContext originatingContext, Query query) assumes that
> originatingContext is not null. This causes an exception in our
> production code which looks like this:
>
> [java] at
> org.apache.cayenne.intercept.DataChannelCallbackInterceptor.onQuery
> (DataChannelCallbackInterceptor.java:82)
> [java] at
> org.apache.cayenne.map.AshwoodEntitySorter.findReflexiveMaster
> (AshwoodEntitySorter.java:309)
> [java] at
> org.apache.cayenne.map.AshwoodEntitySorter.sortObjectsForEntity
> (AshwoodEntitySorter.java:201)
> [java] at
> org.apache.cayenne.access.DataDomainDeleteBucket.appendQueriesInternal
> (DataDomainDeleteBucket.java:94)
> [java] at
> org.apache.cayenne.access.DataDomainSyncBucket.appendQueries
> (DataDomainSyncBucket.java:75)
> [java] at org.apache.cayenne.access.DataDomainFlushAction.preprocess
> (DataDomainFlushAction.java:185)
> [java] at org.apache.cayenne.access.DataDomainFlushAction.flush
> (DataDomainFlushAction.java:133)
> [java] at org.apache.cayenne.access.DataDomain.onSyncFlush
> (DataDomain.java:786)
> [java] at org.apache.cayenne.access.DataDomain$2.transform
> (DataDomain.java:757)
> [java] at org.apache.cayenne.access.DataDomain.runInTransaction
> (DataDomain.java:802)
> [java] at org.apache.cayenne.access.DataDomain.onSync
> (DataDomain.java:754)
> [java] at
> org.apache.cayenne.intercept.DataChannelCallbackInterceptor.onSync
> (DataChannelCallbackInterceptor.java:106)
> [java] at org.apache.cayenne.access.DataContext.flushToParent
> (DataContext.java:1157)
> [java] at org.apache.cayenne.access.DataContext.onContextFlush
> (DataContext.java:1113)
> [java] at org.apache.cayenne.access.DataContext.onSync
> (DataContext.java:1091)
> [java] at org.apache.cayenne.access.ClientServerChannel.onSync
> (ClientServerChannel.java:103)
> [java] at org.apache.cayenne.intercept.DataChannelDecorator.onSync
> (DataChannelDecorator.java:64)
> [java] at
> ish.oncourse.server.cayenne.ChannelTransactionDecorator.onSync
> (ChannelTransactionDecorator.java:48)
> [java] at org.apache.cayenne.remote.service.DispatchHelper.dispatch
> (DispatchHelper.java:44)
> [java] at
> org.apache.cayenne.remote.service.BaseRemoteService.processMessage
> (BaseRemoteService.java:151)
>
> originatingContext needs to be wrapped to protect against nulls,
> but I can't see what is required.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
This archive was generated by hypermail 2.0.0 : Thu Jul 12 2007 - 05:23:44 EDT