[hibernate-commits] Hibernate SVN: r14050 - in core/trunk: testsuite/src/test/java/org/hibernate/test/jpa/ql and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Oct 2 23:50:48 EDT 2007


Author: steve.ebersole at jboss.com
Date: 2007-10-02 23:50:47 -0400 (Tue, 02 Oct 2007)
New Revision: 14050

Modified:
   core/trunk/core/src/main/java/org/hibernate/hql/ast/tree/FromClause.java
   core/trunk/testsuite/src/test/java/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
HHH-2159 : NullPointerException in FromElement#findIntendedAliasedFromElementBasedOnCrazyJPARequirements

Modified: core/trunk/core/src/main/java/org/hibernate/hql/ast/tree/FromClause.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/hql/ast/tree/FromClause.java	2007-10-03 03:09:52 UTC (rev 14049)
+++ core/trunk/core/src/main/java/org/hibernate/hql/ast/tree/FromClause.java	2007-10-03 03:50:47 UTC (rev 14050)
@@ -85,13 +85,14 @@
 	}
 
 	void addDuplicateAlias(String alias, FromElement element) {
-		fromElementByClassAlias.put( alias, element );
+		if ( alias != null ) {
+			fromElementByClassAlias.put( alias, element );
+		}
 	}
 
 	private void checkForDuplicateClassAlias(String classAlias) throws SemanticException {
 		if ( classAlias != null && fromElementByClassAlias.containsKey( classAlias ) ) {
-			throw new SemanticException( "Duplicate definition of alias '"
-					+ classAlias + "'" );
+			throw new SemanticException( "Duplicate definition of alias '" + classAlias + "'" );
 		}
 	}
 

Modified: core/trunk/testsuite/src/test/java/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- core/trunk/testsuite/src/test/java/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java	2007-10-03 03:09:52 UTC (rev 14049)
+++ core/trunk/testsuite/src/test/java/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java	2007-10-03 03:50:47 UTC (rev 14050)
@@ -41,6 +41,12 @@
 		s.close();
 	}
 
+	public void testIdentifierCasesensitivityAndDuplicateFromElements() throws Exception {
+		Session s = openSession();
+		s.createQuery( "select e from MyEntity e where exists (select 1 from MyEntity e2 where e2.other.name  = 'something' and e2.other.other = e)" );
+		s.close();
+	}
+
 	public void testGeneratedSubquery() {
 		Session s = openSession();
 		s.createQuery( "select c FROM Item c WHERE c.parts IS EMPTY" ).list();




More information about the hibernate-commits mailing list