Author: steve.ebersole(a)jboss.com
Date: 2009-06-22 22:27:23 -0400 (Mon, 22 Jun 2009)
New Revision: 16874
Modified:
core/trunk/core/src/main/java/org/hibernate/loader/BasicLoader.java
core/trunk/core/src/main/java/org/hibernate/loader/MultipleBagFetchException.java
Log:
HHH-3980 - Fix for HHH-2980 introduced bug that allows the same bag collection role to be
fetched multiple times
Modified: core/trunk/core/src/main/java/org/hibernate/loader/BasicLoader.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/loader/BasicLoader.java 2009-06-22
22:00:05 UTC (rev 16873)
+++ core/trunk/core/src/main/java/org/hibernate/loader/BasicLoader.java 2009-06-23
02:27:23 UTC (rev 16874)
@@ -24,8 +24,8 @@
*/
package org.hibernate.loader;
-import java.util.Set;
-import java.util.HashSet;
+import java.util.List;
+import java.util.ArrayList;
import org.hibernate.engine.SessionFactoryImplementor;
import org.hibernate.persister.entity.Loadable;
@@ -70,14 +70,14 @@
}
CollectionPersister[] collectionPersisters = getCollectionPersisters();
- Set bagRoles = null;
+ List bagRoles = null;
if ( collectionPersisters != null ) {
String[] collectionSuffixes = getCollectionSuffixes();
collectionDescriptors = new CollectionAliases[collectionPersisters.length];
for ( int i = 0; i < collectionPersisters.length; i++ ) {
if ( isBag( collectionPersisters[i] ) ) {
if ( bagRoles == null ) {
- bagRoles = new HashSet();
+ bagRoles = new ArrayList();
}
bagRoles.add( collectionPersisters[i].getRole() );
}
Modified:
core/trunk/core/src/main/java/org/hibernate/loader/MultipleBagFetchException.java
===================================================================
---
core/trunk/core/src/main/java/org/hibernate/loader/MultipleBagFetchException.java 2009-06-22
22:00:05 UTC (rev 16873)
+++
core/trunk/core/src/main/java/org/hibernate/loader/MultipleBagFetchException.java 2009-06-23
02:27:23 UTC (rev 16874)
@@ -23,7 +23,7 @@
*/
package org.hibernate.loader;
-import java.util.Set;
+import java.util.List;
import org.hibernate.HibernateException;
@@ -34,19 +34,19 @@
* @author Steve Ebersole
*/
public class MultipleBagFetchException extends HibernateException {
- private final Set bagRoles;
+ private final List bagRoles;
- public MultipleBagFetchException(Set bagRoles) {
+ public MultipleBagFetchException(List bagRoles) {
super( "cannot simultaneously fetch multiple bags" );
this.bagRoles = bagRoles;
}
/**
- * Retrieves the set of collection roles for the bags encountered.
+ * Retrieves the collection-roles for the bags encountered.
*
* @return The bag collection roles.
*/
- public Set getBagRoles() {
+ public List getBagRoles() {
return bagRoles;
}
}