HHH-3980 - Fix for HHH-2980 introduced bug that allows the same bag collection role to be fetched multiple times

git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@16874 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
Steve Ebersole 2009-06-23 02:27:23 +00:00
parent 0c15a4d620
commit b72707d9b1
2 changed files with 9 additions and 9 deletions

View File

@ -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 @@ public abstract class BasicLoader extends Loader {
}
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() );
}

View File

@ -23,7 +23,7 @@
*/
package org.hibernate.loader;
import java.util.Set;
import java.util.List;
import org.hibernate.HibernateException;
@ -34,19 +34,19 @@ import org.hibernate.HibernateException;
* @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;
}
}