[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