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