IllegalStateException: Unexpected AST: org.hibernate.hql.internal.ast.tree.SqlNode executing HQL SELECT with a constructor expression containing null in JBoss EAP

Solution Verified - Updated -

Issue

  • Executing an HQL query using a constructor expression in the select clause where Employee is an entity type

    SELECT new support.hibernate.dto.Pair(e, null) FROM Employee e WHERE e.name = :name
    
  • After applying JBoss EAP 6.4 cumulative patch 10, encountering the following failure

    java.lang.IllegalStateException: Unexpected AST: org.hibernate.hql.internal.ast.tree.SqlNode 
     \-[NULL] SqlNode: 'null'
    
        at org.hibernate.hql.internal.ast.tree.SelectExpressionList.collectSelectExpressions(SelectExpressionList.java:55)
        at org.hibernate.hql.internal.ast.tree.ConstructorNode.resolveConstructorArgumentTypes(ConstructorNode.java:159)
        at org.hibernate.hql.internal.ast.tree.ConstructorNode.prepare(ConstructorNode.java:142)
        ...
        at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1739)
        at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)
        ...
    
  • After applying JBoss EAP 7.0 cumulative patch 3, encountering the following failure

    java.lang.NullPointerException
        at org.hibernate.hql.internal.NameGenerator.generateColumnNames(NameGenerator.java:27)
        at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.generateColumnNames(SessionFactoryHelper.java:418)
        at org.hibernate.hql.internal.ast.tree.SelectClause.initializeColumnNames(SelectClause.java:267)
        ...
        at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1894)
        at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)
        ...
    

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7.0 CP03 (and later)
    • 6.4 CP10 (and later)
  • Hibernate
    • 5.0.11 (and later)
    • 4.2.24 (and later)

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content