No inheritance - there must be only one override set when mis-configured prefetches.

From: Marcin Skladaniec (marcin.skladanie..cu.edu.au)
Date: Thu Jul 02 2009 - 02:28:11 EDT

  • Next message: Jwalley: "RE: Oracle driver"

    Hi

    Just to let everyone know, if you are using prefetches and by mistake
    use two routes to the same objects this exception will come up.
    Example to illustrate:
    SelectQuery on Company
    added prefetches
    Company.EMPLOYEE+"."+Employee.PERSON
    Company.CONTRACTOR+"."+Employee.PERSON
    will produce a runtime error.

    The error message is a little confusing, is it easy to make it more
    informative?
    Marcin

    [java] WARNING: org.apache.cayenne.CayenneRuntimeException: [v.3.0-
    SNAPSHOT ${project.build.date} ${project.build.time}] Exception
    processing message org.apache.cayenne.remote.QueryMessage of type Query
          [java] org.apache.cayenne.CayenneRuntimeException: [v.3.0-
    SNAPSHOT ${project.build.date} ${project.build.time}] Exception
    processing message org.apache.cayenne.remote.QueryMessage of type Query
          [java] at
    org
    .apache
    .cayenne
    .remote
    .service.BaseRemoteService.processMessage(BaseRemoteService.java:167)
          [java] at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown
    Source)
          [java] at
    sun
    .reflect
    .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
    25)
          [java] at java.lang.reflect.Method.invoke(Method.java:585)
          [java] at
    com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
    180)
          [java] at
    com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
    109)
          [java] at
    com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:
    396)
          [java] at
    org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
          [java] at org.mortbay.jetty.servlet.ServletHandler
    $CachedChain.doFilter(ServletHandler.java:1124)
          [java] at
    ish.oncourse.server.SecurityFilter.doFilter(SecurityFilter.java:110)
          [java] at org.mortbay.jetty.servlet.ServletHandler
    $CachedChain.doFilter(ServletHandler.java:1115)
          [java] at
    org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
          [java] at
    org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
    216)
          [java] at
    org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
          [java] at
    org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
          [java] at
    org
    .mortbay
    .jetty
    .handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:
    230)
          [java] at
    org
    .mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:
    114)
          [java] 02 Jul 2009 15:40:33,670 [246728..tp0-5 ] INFO
    org.apache.cayenne.access.QueryLogger :453 - *** error.
          [java] java.lang.IllegalArgumentException: No inheritance -
    there must be only one override set
          [java] at
    org
    .apache
    .cayenne
    .access.jdbc.DataRowPostProcessor.<init>(DataRowPostProcessor.java:118)
          [java] at
    org
    .apache
    .cayenne
    .access
    .jdbc
    .DataRowPostProcessor.createPostProcessor(DataRowPostProcessor.java:105)
          [java] at
    org
    .apache
    .cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:84)
          [java] at
    org
    .apache
    .cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:
    87)
          [java] at
    org.apache.cayenne.access.DataNode.performQueries(DataNode.java:274)
          [java] at
    org
    .apache
    .cayenne
    .access.DataDomainQueryAction.runQuery(DataDomainQueryAction.java:422)
          [java] at org.apache.cayenne.access.DataDomainQueryAction.access
    $000(DataDomainQueryAction.java:66)
          [java] at org.apache.cayenne.access.DataDomainQueryAction
    $2.transform(DataDomainQueryAction.java:395)
          [java] at
    org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:
    846)
          [java] at
    org
    .apache
    .cayenne
    .access
    .DataDomainQueryAction
    .runQueryInTransaction(DataDomainQueryAction.java:392)
          [java] at
    org
    .apache
    .cayenne
    .access.DataDomainQueryAction.execute(DataDomainQueryAction.java:118)
          [java] at
    org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:739)
          [java] at
    org
    .apache
    .cayenne
    .util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:
    333)
          [java] at
    org
    .apache
    .cayenne
    .util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:96)
          [java] at
    org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1268)
          [java] at
    org
    .apache
    .cayenne
    .access
    .ClientServerChannelQueryAction
    .runQuery(ClientServerChannelQueryAction.java:119)
          [java] at
    org
    .apache
    .cayenne
    .access
    .ClientServerChannelQueryAction
    .execute(ClientServerChannelQueryAction.java:65)
          [java] at
    org
    .apache
    .cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:81)
          [java] at
    org
    .apache
    .cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:39)
          [java] at
    org
    .apache
    .cayenne
    .remote
    .service.BaseRemoteService.processMessage(BaseRemoteService.java:152)
          [java] at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown
    Source)
          [java] at
    sun
    .reflect
    .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
    25)
          [java] at java.lang.reflect.Method.invoke(Method.java:585)
          [java] at
    com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
    180)
          [java] at
    com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
    109)
          [java] at
    com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:
    396)
          [java] at
    org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
          [java] at org.mortbay.jetty.Server.handle(Server.java:324)
          [java] at
    org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
          [java] at org.mortbay.jetty.HttpConnection
    $RequestHandler.content(HttpConnection.java:879)
          [java] at
    org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:828)
          [java] at
    org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
          [java] at
    org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
          [java] at org.mortbay.jetty.bio.SocketConnector
    $Connection.run(SocketConnector.java:228)
          [java] at org.mortbay.thread.QueuedThreadPool
    $PoolThread.run(QueuedThreadPool.java:522)



    This archive was generated by hypermail 2.0.0 : Thu Jul 02 2009 - 02:29:03 EDT