Author: allee8285
Date: Thu Mar 25 22:53:14 2010
New Revision: 927630

URL: http://svn.apache.org/viewvc?rev=927630&view=rev
Log:
OPENJPA-1599 - Retain em method user input property map content from 
modifications.

Modified:
    
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java

Modified: 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
URL: 
http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=927630&r1=927629&r2=927630&view=diff
==============================================================================
--- 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 (original)
+++ 
openjpa/branches/2.0.x/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
 Thu Mar 25 22:53:14 2010
@@ -33,6 +33,7 @@ import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.EnumSet;
+import java.util.HashMap;
 import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.Set;
@@ -487,6 +488,7 @@ public class EntityManagerImpl
     @SuppressWarnings("unchecked")
     public <T> T find(Class<T> cls, Object oid, LockModeType mode, Map<String, 
Object> properties) {
         assertNotCloseInvoked();
+        properties = cloneProperties(properties);
         configureCurrentCacheModes(pushFetchPlan(), properties);
         configureCurrentFetchPlan(getFetchPlan(), properties, mode, true);
         try {
@@ -1186,6 +1188,7 @@ public class EntityManagerImpl
         assertNotCloseInvoked();
         assertValidAttchedEntity(LOCK, entity);
         _broker.assertActiveTransaction();
+        properties = cloneProperties(properties);
         configureCurrentCacheModes(pushFetchPlan(), properties);
         configureCurrentFetchPlan(getFetchPlan(), properties, mode, false);
         try {
@@ -1808,4 +1811,11 @@ public class EntityManagerImpl
         }
         return value;
     }
+
+    private Map<String, Object> cloneProperties(Map<String, Object> 
properties) {
+        if (properties != null) {
+            properties = new HashMap<String, Object>(properties);
+        }
+        return properties;
+    }
 }


Reply via email to