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.