You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Marcin Skladaniec <ma...@jcu.edu.au> on 2009/07/02 08:28:11 UTC

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

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 [2467288@qtp0-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)