[hibernate-commits] Hibernate SVN: r18872 - core/trunk/core/src/main/java/org/hibernate/event/def.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Feb 24 15:21:09 EST 2010


Author: gbadner
Date: 2010-02-24 15:21:08 -0500 (Wed, 24 Feb 2010)
New Revision: 18872

Modified:
   core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java
Log:
HHH-4948 : Session.flush() does not always cascade save or update to read-only or immutable entities

Modified: core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java	2010-02-24 19:11:53 UTC (rev 18871)
+++ core/trunk/core/src/main/java/org/hibernate/event/def/DefaultSaveOrUpdateEventListener.java	2010-02-24 20:21:08 UTC (rev 18872)
@@ -285,11 +285,9 @@
 			Object entity,
 			EntityPersister persister) throws HibernateException {
 
-		if ( !persister.isMutable() ) {
-			log.trace( "immutable instance passed to doUpdate(), locking" );
-			reassociate( event, entity, event.getRequestedId(), persister );
-		}
-		else {
+			if ( !persister.isMutable() ) {
+				log.trace( "immutable instance passed to performUpdate()" );
+			}
 
 			if ( log.isTraceEnabled() ) {
 				log.trace(
@@ -329,7 +327,7 @@
 
 			source.getPersistenceContext().addEntity(
 					entity,
-					Status.MANAGED,
+					( persister.isMutable() ? Status.MANAGED : Status.READ_ONLY ),
 					null, //cachedState,
 					key,
 					persister.getVersion( entity, source.getEntityMode() ),
@@ -350,8 +348,6 @@
 			}
 
 			cascadeOnUpdate( event, persister, entity );
-
-		}
 	}
 
 	protected boolean invokeUpdateLifecycle(Object entity, EntityPersister persister, EventSource source) {



More information about the hibernate-commits mailing list