You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Ari Maniatis (JIRA)" <ji...@apache.org> on 2010/01/08 14:48:54 UTC
[jira] Commented: (CAY-1172) in ROP inheritance fails on select
query
[ https://issues.apache.org/jira/browse/CAY-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12798012#action_12798012 ]
Ari Maniatis commented on CAY-1172:
-----------------------------------
Marcin, is this issue now resolved?
> in ROP inheritance fails on select query
> ----------------------------------------
>
> Key: CAY-1172
> URL: https://issues.apache.org/jira/browse/CAY-1172
> Project: Cayenne
> Issue Type: Bug
> Components: ROP
> Affects Versions: 3.0M5
> Environment: cayenne build from svn on 20th Jan'08, ROP, derby, os x
> Reporter: Marcin Skladaniec
>
> When performing a query for "ArticleProduct" class on remote client the following exception is thrown:
> [java] 21 Jan 2009 17:45:40,643 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :473 - --- will run 1 query.
> [java] 21 Jan 2009 17:45:40,643 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :427 - --- transaction started.
> [java] 21 Jan 2009 17:45:40,644 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :357 - SELECT t0.id FROM Product t0 WHERE (t0.isDeleted IS NULL) OR (t0.isDeleted = ?) OR (t0.type = ?) OR (t0.type = ?) OR (t0.type = ?) ORDER BY t0.name [bind: 1->isDeleted:0, 2->type:1, 3->type:2, 4->type:3]
> [java] 21 Jan 2009 17:45:40,654 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :401 - === returned 3 rows. - took 14 ms.
> [java] 21 Jan 2009 17:45:40,654 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :434 - +++ transaction committed.
> [java] 21 Jan 2009 17:45:40,655 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :473 - --- will run 1 query.
> [java] 21 Jan 2009 17:45:40,657 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :427 - --- transaction started.
> [java] 21 Jan 2009 17:45:40,666 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :357 - SELECT t0.id, t0.modifiedOn, t0.type, t0.notes, t0.isDeleted, t0.isWebVisible, t0.willowId, t0.incomeAccountId, t0.description, t0.taxId, t0.isOnSale, t0.priceExTax, t0.createdOn, t0.name, t0.SKU, t0.weight, t0.expiryDays, t0.expiryType, t0.value, t0.liabilityAccountId FROM Product t0 WHERE ((t0.id = ?) OR (t0.id = ?) OR (t0.id = ?)) AND ((t0.isDeleted IS NULL) OR (t0.isDeleted = ?) OR (t0.type = ?) OR (t0.type = ?) OR (t0.type = ?)) [bind: 1->id:240, 2->id:220, 3->id:200, 4->isDeleted:0, 5->type:1, 6->type:2, 7->type:3] - prepared in 9 ms.
> [java] 21 Jan 2009 17:45:40,703 [btpool0-2 ] INFO org.apache.cayenne.access.QueryLogger :453 - *** error.
> [java] java.lang.NullPointerException
> [java] at org.apache.cayenne.exp.parser.SimpleNode.evaluateChild(SimpleNode.java:315)
> [java] at org.apache.cayenne.exp.parser.ASTEqual.evaluateNode(ASTEqual.java:61)
> [java] at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:327)
> [java] at org.apache.cayenne.exp.parser.SimpleNode.evaluateChild(SimpleNode.java:315)
> [java] at org.apache.cayenne.exp.parser.ASTOr.evaluateNode(ASTOr.java:69)
> [java] at org.apache.cayenne.exp.parser.SimpleNode.evaluate(SimpleNode.java:327)
> [java] at org.apache.cayenne.exp.Expression.match(Expression.java:367)
> [java] at org.apache.cayenne.map.EntityInheritanceTree.entityMatchingRow(EntityInheritanceTree.java:92)
> [java] at org.apache.cayenne.access.jdbc.DataRowPostProcessor.getOverrides(DataRowPostProcessor.java:147)
> [java] at org.apache.cayenne.access.jdbc.DataRowPostProcessor.postprocessRow(DataRowPostProcessor.java:128)
> [java] at org.apache.cayenne.access.jdbc.InheritanceAwareRowReader.postprocessRow(InheritanceAwareRowReader.java:45)
> [java] at org.apache.cayenne.access.jdbc.FullRowReader.readRow(FullRowReader.java:54)
> [java] at org.apache.cayenne.access.jdbc.FullRowReader.readRow(FullRowReader.java:31)
> [java] at org.apache.cayenne.access.jdbc.JDBCResultIterator.nextRow(JDBCResultIterator.java:194)
> [java] at org.apache.cayenne.access.jdbc.JDBCResultIterator.allRows(JDBCResultIterator.java:171)
> [java] at org.apache.cayenne.access.jdbc.SelectAction.performAction(SelectAction.java:155)
> [java] at org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:87)
> [java] at org.apache.cayenne.access.DataNode.performQueries(DataNode.java:236)
> [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:316)
> [java] at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:95)
> [java] at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1267)
> [java] at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1256)
> [java] 21/01/2009 17:45:40 com.caucho.hessian.server.HessianSkeleton invoke
> [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] at org.apache.cayenne.access.IncrementalFaultList.resolveInterval(IncrementalFaultList.java:295)
> [java] at org.apache.cayenne.access.IncrementalFaultList.get(IncrementalFaultList.java:550)
> [java] at org.apache.cayenne.access.IncrementalFaultList$1.next(IncrementalFaultList.java:467)
> [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.toClientObjects(ClientServerChannelQueryAction.java:187)
> [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.interceptObjectConversion(ClientServerChannelQueryAction.java:162)
> [java] at org.apache.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:69)
> [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.NativeMethodAccessorImpl.invoke0(Native Method)
> [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [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:487)
> [java] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
> [java] at ish.oncourse.server.SecurityFilter.doFilter(SecurityFilter.java:103)
> [java] at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
> [java] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> [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:729)
> [java] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
> [java] at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> [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:505)
> [java] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
> [java] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:729)
> [java] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
> [java] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> [java] at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
> [java] at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
> the model is defined as follows:
> <obj-entity name="ArticleProduct" superEntityName="Product" className="ish.oncourse.server.cayenne.ArticleProduct" clientClassName="ish.oncourse.cayenne.ArticleProduct">
> <qualifier><![CDATA[type = 1]]></qualifier>
> <obj-attribute name="weight" type="java.lang.Double" db-attribute-path="weight"/>
> </obj-entity>
> <obj-entity name="Product" abstract="true" className="ish.oncourse.server.cayenne.Product" clientClassName="ish.oncourse.cayenne.Product" dbEntityName="Product" superClassName="ish.oncourse.server.cayenne.glue.CayenneDataObject" clientSuperClassName="ish.oncourse.cayenne.glue.PersistentObject">
> <qualifier><![CDATA[(isDeleted = null) or (isDeleted = 0)]]></qualifier>
> <obj-attribute name="createdOn" type="java.util.Date" db-attribute-path="createdOn"/>
> <obj-attribute name="description" type="java.lang.String" db-attribute-path="description"/>
> <obj-attribute name="isDeleted" type="java.lang.Boolean" db-attribute-path="isDeleted"/>
> <obj-attribute name="isOnSale" type="java.lang.Boolean" db-attribute-path="isOnSale"/>
> <obj-attribute name="isWebVisible" type="java.lang.Boolean" db-attribute-path="isWebVisible"/>
> <obj-attribute name="modifiedOn" type="java.util.Date" db-attribute-path="modifiedOn"/>
> <obj-attribute name="name" type="java.lang.String" db-attribute-path="name"/>
> <obj-attribute name="notes" type="java.lang.String" db-attribute-path="notes"/>
> <obj-attribute name="priceExTax" type="ish.math.Money" db-attribute-path="priceExTax"/>
> <obj-attribute name="sku" type="java.lang.String" db-attribute-path="SKU"/>
> <obj-attribute name="type" type="ish.oncourse.cayenne.ProductType" db-attribute-path="type"/>
> <obj-attribute name="willowId" type="java.lang.Long" db-attribute-path="willowId"/>
> </obj-entity>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.