diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java index 7c8cdd35fb..fa499070d3 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/AbstractEntityEntry.java @@ -323,11 +323,14 @@ public abstract class AbstractEntityEntry implements Serializable, EntityEntry { @Override public void overwriteLoadedStateCollectionValue(String propertyName, PersistentCollection collection) { - assert propertyName != null; - assert loadedState != null; + // nothing to do if status is READ_ONLY + if ( getStatus() != Status.READ_ONLY ) { + assert propertyName != null; + assert loadedState != null; - final int propertyIndex = ( (UniqueKeyLoadable) persister ).getPropertyIndex( propertyName ); - loadedState[propertyIndex] = collection; + final int propertyIndex = ( (UniqueKeyLoadable) persister ).getPropertyIndex( propertyName ); + loadedState[propertyIndex] = collection; + } } @Override