[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-4969) NullPointerException in FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements due to null alias map key

Gail Badner (JIRA) noreply at atlassian.com
Tue Oct 5 17:57:57 EDT 2010


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

Gail Badner resolved HHH-4969.
------------------------------

    Resolution: Duplicate

> NullPointerException in FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements due to null alias map key
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HHH-4969
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4969
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.4.sp1
>         Environment: Java version: 1.6.0_16,Sun Microsystems Inc.
> Java VM: Java HotSpot(TM) 64-Bit Server VM 14.2-b01,Sun Microsystems Inc.
> OS-System: Linux 2.6.25.14-69.fc8,amd64
> Hibernate 3.2.4.sp1
> JBosss-4.2.3.GA
> DB2 v8 / JDBC Driver v4.7.85 
>            Reporter: Jürgen
>
> Got a NullPointerException in {{org.hibernate.hql.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements(String)}} due to fromElementByClassAlias Map key being null.
> Only for certain HQL query, along the lines of:
> {code}
> SELECT c FROM C c, IN(c.t) t, IN(c.k.x) x WHERE
> c.k.u = 'K' AND
> t.end >= CURRENT_DATE
> {code}
> Removing {{IN(c.k.x) x}} or {{c.k.u = 'K'}} will not result in a NullPointerException, most likely due to no null alias key put into the map.
> specifiedAlias param was "CURRENT_DATE" when findIntendedAliasedFromElementBasedOnCrazyJPARequirements was called.
> {code}
> 	private FromElement findIntendedAliasedFromElementBasedOnCrazyJPARequirements(String specifiedAlias) {
> ...
> 			if ( alias.equalsIgnoreCase( specifiedAlias ) ) { // alias can be null here
> ..
> 	}
> {code}
> {code}
> java.lang.NullPointerException
>         at org.hibernate.hql.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements(FromClause.java:120)
>         at org.hibernate.hql.ast.tree.FromClause.containsClassAlias(FromClause.java:247)
>         at org.hibernate.hql.ast.tree.FromClause.isFromElementAlias(FromClause.java:135)
>         at org.hibernate.hql.ast.HqlSqlWalker.isNonQualifiedPropertyRef(HqlSqlWalker.java:467)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4382)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1212)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3648)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1690)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1687)
>         at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1687)
>         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:228)
>         at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
>         at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
>         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:72)
>         at org.hibernate.impl.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:402)
>         at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:352)
>         at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
>         at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:713)
>         at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
>         at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
>         at sun.reflect.GeneratedMethodAccessor622.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:103)
>         at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
>         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
>         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
>         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
>         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
>         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
>         at org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
>         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
>         at $Proxy0.start(Unknown Source)
>         at org.jboss.system.ServiceController.start(ServiceController.java:417)
> {code}

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