I just noticed at 
https://demo-trunk.ofbiz.apache.org/catalog/control/FindProductStore

that we have an issue with this line
this.resetBshInterpreter(localContext);

That we find twice in ModelForm.java.

>From stack trace it could related to immutable being introduced in the entity 
>engine recently

---- cause ---------------------------------------------------------------------
Exception: java.lang.UnsupportedOperationException
Message: null
---- stack trace ---------------------------------------------------------------
java.lang.UnsupportedOperationException
java.util.Collections$UnmodifiableMap.remove(Collections.java:1288)
org.ofbiz.entity.GenericEntity.remove(GenericEntity.java:1451)
org.ofbiz.base.util.collections.MapContext.remove(MapContext.java:255)
org.ofbiz.widget.form.ModelForm.resetBshInterpreter(ModelForm.java:2139)


I used this 

Index: framework/entity/src/org/ofbiz/entity/GenericEntity.java
===================================================================
--- framework/entity/src/org/ofbiz/entity/GenericEntity.java (revision 1480164)
+++ framework/entity/src/org/ofbiz/entity/GenericEntity.java (working copy)
@@ -314,6 +314,13 @@
         }
     }
 
+    public void setMutable() {
+        if (!this.mutable) {
+            this.mutable = true;
+            this.fields = new HashMap<String, Object>(this.fields);
+        }
+    }
+
     /**
      * @return Returns the isFromEntitySync.
      */
@@ -1448,7 +1455,10 @@
     // ---- Methods added to implement the Map interface: ----
 
     public Object remove(Object key) {
-        return this.fields.remove(key);
+        setMutable();
+        this.fields.remove(key);
+        setImmutable();
+        return this.fields;
     }
 
     public boolean containsKey(Object key) {


I can commit if you are ok with it

Jacques

Reply via email to