From: Erik H. (JIRA) <no...@at...> - 2005-12-28 12:18:20
|
Hibernate 3.1 does not analyze queries with a certain depth anymore ------------------------------------------------------------------- Key: HHH-1319 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319 Project: Hibernate3 Type: Bug Versions: 3.1 Environment: Linux, jdk 1.5, Hibernate 3.1, Oracle 10g Reporter: Erik Heckert Attachments: testcase.tar A query like the one from Dispo.Hibernate.Test.A as a where a.ptrB.ptrC.Oid >= :oid leads to a NullPointerException when using Hibernate 3.1. The same query runs without a problem against Hibernate 3.0.5. When breaking down the where clause to "a.ptrB.Oid = ptrC.Oid and ptrC.Oid = :oid" the query works. The stack trace is: [java] java.lang.NullPointerException [java] at org.hibernate.hql.ast.tree.DotNode.getColumns(DotNode.java:97) [java] at org.hibernate.hql.ast.tree.DotNode.initText(DotNode.java:210) [java] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:204) [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) [java] at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:660) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1213) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4022) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3628) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1756) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:774) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:575) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:279) [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:227) [java] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218) [java] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158) [java] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:105) [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74) [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:53) [java] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) [java] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:108) [java] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88) [java] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540) [java] at Dispo.Hibernate.Test.QueryABC.main(QueryABC.java:32) I'll attach the Java files I've used for this test case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
From: Erik H. (JIRA) <no...@at...> - 2005-12-28 12:18:50
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319?page=comments#action_21471 ] Erik Heckert commented on HHH-1319: ----------------------------------- I don't know if it is of any help, but the error first occurred in the beta2 release; the beta1 release works fine. > Hibernate 3.1 does not analyze queries with a certain depth anymore > ------------------------------------------------------------------- > > Key: HHH-1319 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319 > Project: Hibernate3 > Type: Bug > Versions: 3.1 > Environment: Linux, jdk 1.5, Hibernate 3.1, Oracle 10g > Reporter: Erik Heckert > Attachments: testcase.tar > > > A query like the one > from Dispo.Hibernate.Test.A as a where a.ptrB.ptrC.Oid >= :oid > leads to a NullPointerException when using Hibernate 3.1. The same query runs without a problem against Hibernate 3.0.5. > When breaking down the where clause to "a.ptrB.Oid = ptrC.Oid and ptrC.Oid = :oid" the query works. > The stack trace is: > [java] java.lang.NullPointerException > [java] at org.hibernate.hql.ast.tree.DotNode.getColumns(DotNode.java:97) > [java] at org.hibernate.hql.ast.tree.DotNode.initText(DotNode.java:210) > [java] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:204) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) > [java] at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:660) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1213) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4022) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3628) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1756) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:774) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:575) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:279) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:227) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:105) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:53) > [java] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) > [java] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:108) > [java] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88) > [java] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540) > [java] at Dispo.Hibernate.Test.QueryABC.main(QueryABC.java:32) > I'll attach the Java files I've used for this test case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
From: Steve E. (JIRA) <no...@at...> - 2006-01-28 12:15:47
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319?page=all ] Steve Ebersole updated HHH-1319: -------------------------------- Component: query-hql > Hibernate 3.1 does not analyze queries with a certain depth anymore > ------------------------------------------------------------------- > > Key: HHH-1319 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319 > Project: Hibernate3 > Type: Bug > Components: query-hql > Versions: 3.1 > Environment: Linux, jdk 1.5, Hibernate 3.1, Oracle 10g > Reporter: Erik Heckert > Attachments: testcase.tar > > > A query like the one > from Dispo.Hibernate.Test.A as a where a.ptrB.ptrC.Oid >= :oid > leads to a NullPointerException when using Hibernate 3.1. The same query runs without a problem against Hibernate 3.0.5. > When breaking down the where clause to "a.ptrB.Oid = ptrC.Oid and ptrC.Oid = :oid" the query works. > The stack trace is: > [java] java.lang.NullPointerException > [java] at org.hibernate.hql.ast.tree.DotNode.getColumns(DotNode.java:97) > [java] at org.hibernate.hql.ast.tree.DotNode.initText(DotNode.java:210) > [java] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:204) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) > [java] at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:660) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1213) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4022) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3628) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1756) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:774) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:575) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:279) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:227) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:105) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:53) > [java] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) > [java] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:108) > [java] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88) > [java] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540) > [java] at Dispo.Hibernate.Test.QueryABC.main(QueryABC.java:32) > I'll attach the Java files I've used for this test case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
From: N C. (JIRA) <no...@at...> - 2006-03-14 09:43:35
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319?page=comments#action_22467 ] N Clayton commented on HHH-1319: -------------------------------- We are also seeing this with the following: Map<String, Object> params = MapMaker.make("curveId", curveId); return (List<CurveSet>) session.find("from CurveSet cs where cs.contents.curve.id = :curveId", params); With a mapping like: <class name="CurveSet" table="CURVE_SET" dynamic-update="true" select-before-update="true"> <id name="id" column="id" unsaved-value="0" type="long"> <generator class="sequence"> <param name="sequence">CURVE_SET_SEQ</param> </generator> </id> <version name="version" type="long"/> <property name="name" type="string"/> <property name="created" type="timestamp" column="CREATEDDATE" access="com.rbsfm.ice.common.persist.DateTimeAccessor"/> <property name="updated" type="timestamp" column="UPDATEDDATE" access="com.rbsfm.ice.common.persist.DateTimeAccessor"/> <property name="isLocked" column="LOCK_FLAG" type="yes_no"/> <property name="isPublic" column="PUBLIC_FLAG" type="yes_no"/> <many-to-one name="owner" column="PERS_ID" lazy="false"/> <set name="contents" table="CURVE_SET_MEMBERSHIP" batch-size="100" access="field" cascade="all,delete-orphan"> <key column="CUSE_ID"/> <composite-element class="CurveSetMembership"> <parent name="curveSet"/> <property name="updated" column="UPDATEDDATE" type="timestamp" access="com.rbsfm.ice.common.persist.DateTimeAccessor"/> <many-to-one name="curve" column="CURV_ID" not-null="true" access="field" cascade="save-update, merge"/> </composite-element> </set> </class> > Hibernate 3.1 does not analyze queries with a certain depth anymore > ------------------------------------------------------------------- > > Key: HHH-1319 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319 > Project: Hibernate3 > Type: Bug > Components: query-hql > Versions: 3.1 > Environment: Linux, jdk 1.5, Hibernate 3.1, Oracle 10g > Reporter: Erik Heckert > Attachments: testcase.tar > > > A query like the one > from Dispo.Hibernate.Test.A as a where a.ptrB.ptrC.Oid >= :oid > leads to a NullPointerException when using Hibernate 3.1. The same query runs without a problem against Hibernate 3.0.5. > When breaking down the where clause to "a.ptrB.Oid = ptrC.Oid and ptrC.Oid = :oid" the query works. > The stack trace is: > [java] java.lang.NullPointerException > [java] at org.hibernate.hql.ast.tree.DotNode.getColumns(DotNode.java:97) > [java] at org.hibernate.hql.ast.tree.DotNode.initText(DotNode.java:210) > [java] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:204) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) > [java] at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:660) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1213) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4022) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3628) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1756) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:774) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:575) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:279) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:227) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:105) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:53) > [java] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) > [java] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:108) > [java] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88) > [java] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540) > [java] at Dispo.Hibernate.Test.QueryABC.main(QueryABC.java:32) > I'll attach the Java files I've used for this test case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |
From: Thomas K. (JIRA) <no...@at...> - 2006-06-15 20:50:34
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319?page=comments#action_23347 ] Thomas Klaeger commented on HHH-1319: ------------------------------------- According to http://www.hibernate.org/250.html#A34 - "Hibernate 3.1: stricter checking of invalid queries" the queries shown above "worked purely by side effect in earlier versions". The queries should be rewritten as select a from Dispo.Hibernate.Test.A as a join a.ptrB as b where b.ptrC.Oid >= :oid and select cs from CurveSet cs join cs.contents co where co.curve.id = :curveId IMHO the described behaviour is not a bug since it seems to be an intended change from earlier Hibernate versions, so this issue should be closed as "INVALID - WON'T FIX". However: HIbernate could at least provide a less cryptic error message. > Hibernate 3.1 does not analyze queries with a certain depth anymore > ------------------------------------------------------------------- > > Key: HHH-1319 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1319 > Project: Hibernate3 > Type: Bug > Components: query-hql > Versions: 3.1 > Environment: Linux, jdk 1.5, Hibernate 3.1, Oracle 10g > Reporter: Erik Heckert > Attachments: testcase.tar > > > A query like the one > from Dispo.Hibernate.Test.A as a where a.ptrB.ptrC.Oid >= :oid > leads to a NullPointerException when using Hibernate 3.1. The same query runs without a problem against Hibernate 3.0.5. > When breaking down the where clause to "a.ptrB.Oid = ptrC.Oid and ptrC.Oid = :oid" the query works. > The stack trace is: > [java] java.lang.NullPointerException > [java] at org.hibernate.hql.ast.tree.DotNode.getColumns(DotNode.java:97) > [java] at org.hibernate.hql.ast.tree.DotNode.initText(DotNode.java:210) > [java] at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:204) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) > [java] at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) > [java] at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:660) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1213) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4022) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3628) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1756) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:774) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:575) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:279) > [java] at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:227) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158) > [java] at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:105) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74) > [java] at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:53) > [java] at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71) > [java] at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:108) > [java] at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:88) > [java] at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1540) > [java] at Dispo.Hibernate.Test.QueryABC.main(QueryABC.java:32) > I'll attach the Java files I've used for this test case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |