Thanks for the info. Looks like it was fixed in August as a part of
another bugfix, and will be released in M2:
~/work/cayenne: svn diff framework/cayenne-jdk1.4-unpublished/src/
main/java/org/apache/cayenne/map/AshwoodEntitySorter.java -r
551302:565900
Index: framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/
cayenne/map/AshwoodEntitySorter.java
===================================================================
--- framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/
cayenne/map/AshwoodEntitySorter.java (revision 551302)
+++ framework/cayenne-jdk1.4-unpublished/src/main/java/org/apache/
cayenne/map/AshwoodEntitySorter.java (revision 565900)
@@ -302,16 +302,22 @@
// find committed snapshot - so we can't fetch from the
context as it will return
// dirty snapshot; must go down the stack instead
+
+ // how do we handle this for NEW objects correctly? For now
bail from the method
+ if (object.getObjectId().isTemporary()) {
+ return null;
+ }
+
ObjectIdQuery query = new ObjectIdQuery(
object.getObjectId(),
true,
ObjectIdQuery.CACHE);
QueryResponse response = context.getChannel().onQuery(null,
query);
List result = response.firstList();
- if(result == null || result.size() == 0) {
+ if (result == null || result.size() == 0) {
return null;
}
-
+
DataRow snapshot = (DataRow) result.get(0);
ObjectId id = snapshot.createTargetObjectId
(targetEntityName, finalRel);
Andrus
On Sep 27, 2007, at 4:04 AM, Gary Jarrel wrote:
Although not able to reproduce was able to pull it out one of the
log files:
ERROR au.com.jarrel.katya.proc.db.dao.CayenneDataContextInterceptor
(CayenneDataContextInterceptor.java:49) - Caught exception during
invocation, will try to roll back
org.apache.cayenne.CayenneRuntimeException: [v.3.0M1 Jul 27 2007
23:05:47] Can't build a query for temporary id:
<ObjectId:Notification, TEMP:0000034FCA0C0101>
at org.apache.cayenne.query.ObjectIdQuery.createReplacementQuery
(ObjectIdQuery.java:120)
at org.apache.cayenne.query.IndirectQuery.getReplacementQuery
(IndirectQuery.java:75)
at org.apache.cayenne.query.IndirectQuery.route(IndirectQuery.java:
58)
at org.apache.cayenne.access.DataDomainQueryAction.runQuery
(DataDomainQueryAction.java:408)
at org.apache.cayenne.access.DataDomainQueryAction.access$000
(DataDomainQueryAction.java:65)
at org.apache.cayenne.access.DataDomainQueryAction$2.transform
(DataDomainQueryAction.java:389)
at org.apache.cayenne.access.DataDomain.runInTransaction
(DataDomain.java:802)
at
org.apache.cayenne.access.DataDomainQueryAction.runQueryInTransaction(
DataDomainQueryAction.java:386)
at
org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery
(DataDomainQueryAction.java:159)
at org.apache.cayenne.access.DataDomainQueryAction.execute
(DataDomainQueryAction.java:112)
at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:722)
at org.apache.cayenne.map.AshwoodEntitySorter.findReflexiveMaster
(AshwoodEntitySorter.java:309)
at org.apache.cayenne.map.AshwoodEntitySorter.sortObjectsForEntity
(AshwoodEntitySorter.java:201)
at
org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal
(DataDomainInsertBucket.java:86)
at org.apache.cayenne.access.DataDomainSyncBucket.appendQueries
(DataDomainSyncBucket.java:75)
at org.apache.cayenne.access.DataDomainFlushAction.preprocess
(DataDomainFlushAction.java:181)
at org.apache.cayenne.access.DataDomainFlushAction.flush
(DataDomainFlushAction.java:133)
at org.apache.cayenne.access.DataDomain.onSyncFlush
(DataDomain.java:786)
at org.apache.cayenne.access.DataDomain$2.transform
(DataDomain.java:757)
at org.apache.cayenne.access.DataDomain.runInTransaction
(DataDomain.java:812)
at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:754)
at org.apache.cayenne.access.DataContext.flushToParent
(DataContext.java:1157)
at org.apache.cayenne.access.DataContext.commitChanges
(DataContext.java:1062)
at au.com.jarrel.katya.proc.db.dao.impl.BaseDaoImpl.commit
(BaseDaoImpl.java:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflectio
n(AopUtils.java:296)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoi
npoint(ReflectiveMethodInvocation.java:177)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:144)
at
au.com.jarrel.katya.proc.db.dao.CayenneDataContextInterceptor.invoke
(CayenneDataContextInterceptor.java:46)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke
(JdkDynamicAopProxy.java:204)
at $Proxy12.commit(Unknown Source)
at
au.com.jarrel.katya.proc.mail.pipeline.command.NotificationSendingComm
and.sendAndSaveEmailNotification(NotificationSendingCommand.java:181)
at
au.com.jarrel.katya.proc.mail.pipeline.command.NotificationSendingComm
and.sendNotification(NotificationSendingCommand.java:59)
at
au.com.jarrel.katya.proc.mail.pipeline.command.NotificationSendingComm
and.sendNotifications(NotificationSendingCommand.java:53)
at
au.com.jarrel.katya.proc.mail.pipeline.command.NotificationSendingComm
and.execute(NotificationSendingCommand.java:46)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:
190)
at au.com.jarrel.katya.proc.mail.pipeline.SpringPipelineRunner.run
(SpringPipelineRunner.java:43)
at au.com.jarrel.katya.james.mailet.PipelineProcessor.service
(PipelineProcessor.java:30)
at org.apache.james.transport.LinearProcessor.service
(LinearProcessor.java:424)
at org.apache.james.transport.JamesSpoolManager.process
(JamesSpoolManager.java:405)
at org.apache.james.transport.JamesSpoolManager.run
(JamesSpoolManager.java:309)
at java.lang.Thread.run(Thread.java:595)
Hope this is of some value!
Gary
On 9/25/07, Gary Jarrel <[EMAIL PROTECTED]> wrote:
I will reconfigure the app to use 3.0M1 tonight and post the stack
trace,
Sorry for delay!
On 9/22/07, Andrus Adamchik <[EMAIL PROTECTED]> wrote:
A few more questions.
Could you provide a more complete stack trace (just include the
entire Cayenne part of the stack), as I am wondering where in the
Cayenne code the failing query is fired?