[hibernate-commits] Hibernate SVN: r21077 - in core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921: core/src/main/java/org/hibernate/engine/loading and 2 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Sep 14 15:11:34 EDT 2012


Author: brmeyer
Date: 2012-09-14 15:11:34 -0400 (Fri, 14 Sep 2012)
New Revision: 21077

Modified:
   core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/jdbc/ResultSetWrapperProxy.java
   core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java
   core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/loader/Loader.java
   core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/testsuite/src/test/java/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java
Log:
JBPAPP-9921 Support patch for HHH-1283

Modified: core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/jdbc/ResultSetWrapperProxy.java
===================================================================
--- core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/jdbc/ResultSetWrapperProxy.java	2012-09-14 15:55:56 UTC (rev 21076)
+++ core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/jdbc/ResultSetWrapperProxy.java	2012-09-14 19:11:34 UTC (rev 21077)
@@ -87,7 +87,7 @@
 	 */
 	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
 		if ( "findColumn".equals( method.getName() ) ) {
-			return findColumn( ( String ) args[0] );
+			return new Integer( findColumn( ( String ) args[0] ) );
 		}
 
 		if ( isFirstArgColumnLabel( method, args ) ) {
@@ -177,7 +177,7 @@
 
 	private Object[] buildColumnIndexMethodArgs(Object[] incomingArgs, int columnIndex) {
 		Object actualArgs[] = new Object[incomingArgs.length];
-		actualArgs[0] = columnIndex;
+		actualArgs[0] = new Integer( columnIndex );
 		System.arraycopy( incomingArgs, 1, actualArgs, 1, incomingArgs.length - 1 );
 		return actualArgs;
 	}

Modified: core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java
===================================================================
--- core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java	2012-09-14 15:55:56 UTC (rev 21076)
+++ core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/engine/loading/CollectionLoadContext.java	2012-09-14 19:11:34 UTC (rev 21077)
@@ -173,7 +173,7 @@
 	 *
 	 * @param persister The persister for which to complete loading.
 	 */
-	public void endLoadingCollections(CollectionPersister persister,  Object loadedEntity) {
+	public void endLoadingCollections(CollectionPersister persister) {
 		SessionImplementor session = getLoadContext().getPersistenceContext().getSession();
 		if ( !loadContexts.hasLoadingCollectionEntries()
 				&& localLoadingCollectionKeys.isEmpty() ) {
@@ -195,20 +195,17 @@
 				log.warn( "In CollectionLoadContext#endLoadingCollections, localLoadingCollectionKeys contained [" + collectionKey + "], but no LoadingCollectionEntry was found in loadContexts" );
 			}
 			else if ( lce.getResultSet() == resultSet && lce.getPersister() == persister ) {
-
+				if ( matches == null ) {
+					matches = new ArrayList();
+				}
+				matches.add( lce );
+				
 				if ( lce.getCollection().getOwner() == null ) {
 					session.getPersistenceContext().addUnownedCollection(
 							new CollectionKey( persister, lce.getKey(), session.getEntityMode() ),
 							lce.getCollection()
 					);
 				}
-				else if ( loadedEntity != null && lce.getCollection().getOwner() != loadedEntity ) {
-					continue;
-				}
-				if ( matches == null ) {
-					matches = new ArrayList();
-				}
-				matches.add( lce );
 				if ( log.isTraceEnabled() ) {
 					log.trace( "removing collection load entry [" + lce + "]" );
 				}

Modified: core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/loader/Loader.java
===================================================================
--- core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/loader/Loader.java	2012-09-14 15:55:56 UTC (rev 21076)
+++ core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/core/src/main/java/org/hibernate/loader/Loader.java	2012-09-14 19:11:34 UTC (rev 21077)
@@ -351,8 +351,7 @@
 				hydratedObjects, 
 				resultSet, 
 				session, 
-				queryParameters.isReadOnly(),
-				result
+				queryParameters.isReadOnly()
 			);
 		session.getPersistenceContext().initializeNonLazyCollections();
 		return result;
@@ -412,8 +411,7 @@
 				hydratedObjects, 
 				resultSet, 
 				session, 
-				queryParameters.isReadOnly(),
-				result
+				queryParameters.isReadOnly()
 			);
 		session.getPersistenceContext().initializeNonLazyCollections();
 		return result;
@@ -998,22 +996,13 @@
 			return null;
 		}
 	}
+
 	private void initializeEntitiesAndCollections(
 			final List hydratedObjects,
 			final Object resultSetId,
 			final SessionImplementor session,
 			final boolean readOnly)
 	throws HibernateException {
-		initializeEntitiesAndCollections( hydratedObjects, resultSetId, session, readOnly, null );
-	}
-
-	private void initializeEntitiesAndCollections(
-			final List hydratedObjects,
-			final Object resultSetId,
-			final SessionImplementor session,
-			final boolean readOnly,
-			final Object loadedEntity)
-	throws HibernateException {
 		
 		final CollectionPersister[] collectionPersisters = getCollectionPersisters();
 		if ( collectionPersisters != null ) {
@@ -1024,7 +1013,7 @@
 					//during loading
 					//TODO: or we could do this polymorphically, and have two
 					//      different operations implemented differently for arrays
-					endCollectionLoad( resultSetId, session, collectionPersisters[i], loadedEntity );
+					endCollectionLoad( resultSetId, session, collectionPersisters[i] );
 				}
 			}
 		}
@@ -1058,7 +1047,7 @@
 					//the entities, since we might call hashCode() on the elements
 					//TODO: or we could do this polymorphically, and have two
 					//      different operations implemented differently for arrays
-					endCollectionLoad( resultSetId, session, collectionPersisters[i], loadedEntity );
+					endCollectionLoad( resultSetId, session, collectionPersisters[i] );
 				}
 			}
 		}
@@ -1068,13 +1057,12 @@
 	private void endCollectionLoad(
 			final Object resultSetId, 
 			final SessionImplementor session, 
-			final CollectionPersister collectionPersister,
-			final Object loadedEntity) {
+			final CollectionPersister collectionPersister) {
 		//this is a query and we are loading multiple instances of the same collection role
 		session.getPersistenceContext()
 				.getLoadContexts()
 				.getCollectionLoadContext( ( ResultSet ) resultSetId )
-				.endLoadingCollections( collectionPersister, loadedEntity );
+				.endLoadingCollections( collectionPersister );
 	}
 
 	/**

Modified: core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/testsuite/src/test/java/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java
===================================================================
--- core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/testsuite/src/test/java/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java	2012-09-14 15:55:56 UTC (rev 21076)
+++ core/patches/hibernate-3.3.2.GA_CP04_JBPAPP-9921/testsuite/src/test/java/org/hibernate/test/hqlfetchscroll/HQLScrollFetchTest.java	2012-09-14 19:11:34 UTC (rev 21077)
@@ -303,16 +303,8 @@
 			while ( results.next() ) {
 				list.add( results.get( 0 ) );
 			}
-			try {
-				assertResultFromAllUsers( list );
-				fail( "should have failed because data is ordered incorrectly." );
-			}
-			catch ( AssertionError ex ) {
-				// expected
-			}
-			finally {
-				s.close();
-			}
+			assertFalse( "list is not correct size: ", 2 == list.size() );
+			s.close();
 		}
 		finally {
 			deleteAll();
@@ -330,16 +322,8 @@
 			s.close();
 			s = openSession();
 			List results = s.createQuery( QUERY + " order by c.name desc" ).list();
-			try {
-				assertResultFromAllUsers( results );
-				fail( "should have failed because data is ordered incorrectly." );
-			}
-			catch ( AssertionError ex ) {
-				// expected
-			}
-			finally {
-				s.close();
-			}
+			assertFalse( "list is not correct size: ", 2 == results.size() );
+			s.close();
 		}
 		finally {
 			deleteAll();



More information about the hibernate-commits mailing list