v.3.0-PROTO paging and cache problems

From: Marcin Skladaniec (marci..sh.com.au)
Date: Mon Aug 28 2006 - 03:39:25 EDT

  • Next message: Tobias SCHOESSLER: "Problems with MySql id type with AUTO_INCREMENT"

    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