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?




Reply via email to