Hello !
We were using v.3.0-PROTO for some time now, and suddenly we started
to get some weird errors from cayenne (see bottom of this post).
We started to have those error when number of records was greater
than page size, so after few tests it came clear to me that there is
some kind of a conflict between cache and paging.
To reproduce this problem:
1) get a list of objects in context one (paged, LOCAL_CACHE)
2) using different context add more records
3) invalidate cache (using InvalidateListCacheQuery) in context one OR
use different cache key (query name), do the same query as before
4) first page of records is loaded - ok
5) go to next page of records - fail
Is it some problem with our code, or is it a problem within cayenne
itself ? Does anyone has a clue ?
Regards
Marcin
PS full exception we are getting
16:54:41,558 [AWT-EventQueue-0] WARN
ish.oncourse.cayenne.CayenneContext - invalidating cache for :
I:ish_oncourse_cayenne_Student.*
16:54:42,244 [AWT-EventQueue-0] ERROR
ish.oncourse.cayenne.CayenneContext - Error on performQuery
org.objectstyle.cayenne.CayenneRuntimeException: [v.3.0-PROTO July 5
2006] Remote error. URL - http://192.168.0.3:8181/angel-server-
cayenne; CAUSE - [v.3.0-PROTO July 5 2006] [v.3.0-PROTO July 5 2006]
Can't find id for {<ObjectId:Studentid=341>; committed;
[highestSchoolLevel=>null; modifiedOn=>Mon Aug 28 16:54:39 EST 2006;
disabilityType=>null; waitingLists=>(..); message=>null; paymentsIn=>
(..); indigenousStatus=>4; isDeleted=>null; fax=>null;
firstName=>xxx; countryOfBirth=>?; employmentCategoryId=>null; )]}
at
org.objectstyle.cayenne.remote.hessian.HessianConnection.doSendMessage
(HessianConnection.java:181)
at org.objectstyle.cayenne.remote.BaseConnection.sendMessage
(BaseConnection.java:109)
at org.objectstyle.cayenne.remote.ClientChannel.send
(ClientChannel.java:278)
at org.objectstyle.cayenne.remote.ClientChannel.onQuery
(ClientChannel.java:124)
at
org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery
(ObjectContextQueryAction.java:253)
at org.objectstyle.cayenne.CayenneContextQueryAction.execute
(CayenneContextQueryAction.java:88)
at org.objectstyle.cayenne.CayenneContext.onQuery
(CayenneContext.java:351)
at org.objectstyle.cayenne.CayenneContext.performQuery
(CayenneContext.java:340)
at ish.oncourse.cayenne.CayenneContext.performQuery
(CayenneContext.java:74)
at
org.objectstyle.cayenne.remote.RemoteIncrementalFaultList.forceResolveIn
terval(RemoteIncrementalFaultList.java:279)
at
org.objectstyle.cayenne.remote.RemoteIncrementalFaultList.resolveInterva
l(RemoteIncrementalFaultList.java:264)
at
org.objectstyle.cayenne.remote.RemoteIncrementalFaultList.get
(RemoteIncrementalFaultList.java:453)
at ish.oncourse.view.COTableModel.getRow(COTableModel.java:152)
at ish.oncourse.view.COTableModel.getValueAt
(COTableModel.java:120)
at javax.swing.JTable.getValueAt(JTable.java:1902)
at
ish.oncourse.view.components.Table.adjustColumnPreferredWidths
(Table.java:137)
at ish.oncourse.view.components.Table.access$000(Table.java:59)
at ish.oncourse.view.components.Table$1.run(Table.java:113)
at java.awt.event.InvocationEvent.dispatch
(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy
(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy
(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:176)
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 ish.oncourse.view.frame.EventPump.start(EventPump.java:46)
at ish.oncourse.view.frame.ProgressComponent.display
(ProgressComponent.java:135)
at ish.oncourse.util.export.ImportAvetmissStudents.<init>
(ImportAvetmissStudents.java:86)
at ish.oncourse.util.export.ImportAvetmissStudents.start
(ImportAvetmissStudents.java:91)
at ish.oncourse.ControllerManager.importAvetmiss
(ControllerManager.java:189)
at
ish.oncourse.view.frame.CommonFrame.importAvetmissStudentsActionPerforme
d(CommonFrame.java:1009)
at ish.oncourse.view.frame.CommonFrame.access$1300
(CommonFrame.java:66)
at ish.oncourse.view.frame.CommonFrame$17.actionPerformed
(CommonFrame.java:764)
at javax.swing.AbstractButton.fireActionPerformed
(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed
(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed
(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed
(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:334)
at apple.laf.ScreenMenuItem.actionPerformed
(ScreenMenuItem.java:104)
at java.awt.MenuItem.processActionEvent(MenuItem.java:597)
at java.awt.MenuItem.processEvent(MenuItem.java:556)
at java.awt.MenuComponent.dispatchEventImpl
(MenuComponent.java:298)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:286)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:466)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy
(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy
(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:
110)
Caused by: org.objectstyle.cayenne.CayenneRuntimeException: [v.3.0-
PROTO July 5 2006] [v.3.0-PROTO July 5 2006] Can't find id for
{<ObjectId:Studentid=341>; committed; [highestSchoolLevel=>null;
modifiedOn=>Mon Aug 28 16:54:39 EST 2006; disabilityType=>null;
waitingLists=>(..); message=>null; paymentsIn=>(..);
indigenousStatus=>4; isDeleted=>null; fax=>null; firstName=>xxx;
countryOfBirth=>?; employmentCategoryId=>null; )]}
at org.objectstyle.cayenne.access.IncrementalFaultList
$IncrementalListHelper.updateWithResolvedObjectInRange
(IncrementalFaultList.java:796)
at
org.objectstyle.cayenne.access.IncrementalFaultList.resolveInterval
(IncrementalFaultList.java:444)
at
org.objectstyle.cayenne.access.IncrementalFaultList.subList
(IncrementalFaultList.java:721)
at
org.objectstyle.cayenne.access.ClientServerChannelQueryAction.interceptS
inglePageQuery(ClientServerChannelQueryAction.java:131)
at
org.objectstyle.cayenne.access.ClientServerChannelQueryAction.execute
(ClientServerChannelQueryAction.java:101)
at org.objectstyle.cayenne.access.ClientServerChannel.onQuery
(ClientServerChannel.java:97)
at
org.objectstyle.cayenne.remote.service.DispatchHelper.dispatch
(DispatchHelper.java:76)
at
org.objectstyle.cayenne.remote.service.BaseRemoteService.processMessage(
BaseRemoteService.java:182)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.caucho.hessian.server.HessianSkeleton.invoke
(HessianSkeleton.java:157)
at
org.objectstyle.cayenne.remote.hessian.service._HessianServlet.service
(_HessianServlet.java:388)
at ish.oncourse.server.CayenneServlet.service(Unknown Source)
at org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:428)
at org.mortbay.jetty.servlet.ServletHandler.dispatch
(ServletHandler.java:666)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service
(HttpConnection.java:816)
at org.mortbay.http.HttpConnection.handleNext
(HttpConnection.java:982)
at org.mortbay.http.HttpConnection.handle
(HttpConnection.java:833)
at org.mortbay.http.SocketListener.handleConnection
(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle
(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run
(ThreadPool.java:534)
-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001 fax +61 2 9550 4001
This archive was generated by hypermail 2.0.0 : Mon Aug 28 2006 - 03:41:02 EDT