[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-1897) NPE if HQL refers to nonexistant variable

Diego Pires Plentz (JIRA) noreply at atlassian.com
Mon Sep 10 23:39:14 EDT 2007


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Diego Pires Plentz resolved HHH-1897.
-------------------------------------

      Assignee: Diego Pires Plentz
    Resolution: Duplicate

> NPE if HQL refers to nonexistant variable
> -----------------------------------------
>
>                 Key: HHH-1897
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1897
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: query-hql
>    Affects Versions: 3.2.0.cr2
>            Reporter: Koda Janh
>            Assignee: Diego Pires Plentz
>
> Given the query:
> "from mobi.gateway.domain.Server as server where server not in (select user.server from mobi.gateway.domain.User where user.server is not null) group by server.hostname order by count(server.port) desc limit 1"
> Hibernate throws this exception:
> java.lang.NullPointerException
>      at org.hibernate.hql.ast.tree.IdentNode.resolveAsNakedComponentPropertyRefLHS(IdentNode.java:195)
>      at org.hibernate.hql.ast.tree.IdentNode.resolve(IdentNode.java:85)
>      at org.hibernate.hql.ast.tree.DotNode.resolveFirstChild(DotNode.java:139)
>      at org.hibernate.hql.ast.HqlSqlWalker.lookupProperty(HqlSqlWalker.java:469)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.propertyRef(HqlSqlBaseWalker.java:1080)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExpr(HqlSqlBaseWalker.java:1877)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectExprList(HqlSqlBaseWalker.java:1821)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectClause(HqlSqlBaseWalker.java:1392)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:553)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.collectionFunctionOrSubselect(HqlSqlBaseWalker.java:4243)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.inRhs(HqlSqlBaseWalker.java:4152)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3859)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
>      at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
>      at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:227)
>      at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:159)
>      at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:110)
>      at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
>      at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
>      at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
>      at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
>      at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
>      at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1612)
> if I add "as user" after "mobi.gateway.domain.User" the problem goes away. I would expect Hibernate to handle this more gracefully and maybe explain there is a mistake in the HQL statement, such as "user is undefined".

-- 
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

        



More information about the hibernate-issues mailing list