Author: hansbak
Date: Tue Apr 28 04:16:19 2009
New Revision: 769236
URL: http://svn.apache.org/viewvc?rev=769236&view=rev
Log:
intermittent error seems to be solved with this
Modified:
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
Modified:
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java?rev=769236&r1=769235&r2=769236&view=diff
==============================================================================
---
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
(original)
+++
ofbiz/trunk/framework/service/src/org/ofbiz/service/eca/ServiceEcaSetField.java
Tue Apr 28 04:16:19 2009
@@ -36,12 +36,18 @@
public static final String module = ServiceEcaSetField.class.getName();
protected String fieldName = null;
+ protected String mapName = null;
+ protected Map<String, Object> map = null;
protected String envName = null;
protected String value = null;
protected String format = null;
public ServiceEcaSetField(Element set) {
this.fieldName = set.getAttribute("field-name");
+ if (UtilValidate.isNotEmpty(this.fieldName) &&
this.fieldName.indexOf('.') != -1) {
+ this.mapName = fieldName.substring(0, this.fieldName.indexOf('.'));
+ this.fieldName =
this.fieldName.substring(this.fieldName.indexOf('.') +1);
+ }
this.envName = set.getAttribute("env-name");
this.value = set.getAttribute("value");
this.format = set.getAttribute("format");
@@ -61,34 +67,27 @@
}
}
// TODO: rewrite using the ContextAccessor.java see hack below to
be able to use maps for email notifications
- // check if target is a map
- String mapName = null;
- Map<String, Object> map = null;
- if (UtilValidate.isNotEmpty(fieldName) && fieldName.indexOf('.')
!= -1) {
- mapName = fieldName.substring(0,
fieldName.indexOf('.'));
- fieldName = fieldName.substring(fieldName.indexOf('.')
+1);
- if (context.containsKey(mapName)) {
- map = (Map<String, Object>)
context.get(mapName);
- } else {
- map = FastMap.newInstance();
- }
- }
-
+ // check if target is a map and create/get from contaxt
+ if (UtilValidate.isNotEmpty(this.mapName) &&
context.containsKey(this.mapName)) {
+ map = (Map<String, Object>) context.get(mapName);
+ } else {
+ map = FastMap.newInstance();
+ }
// process the context changes
String newValue = null;
- if (UtilValidate.isNotEmpty(value)) {
- newValue = (String) this.format(value, context);
- } else if (UtilValidate.isNotEmpty(envName) &&
context.get(envName) != null) {
- newValue = (String) this.format((String) context.get(envName),
context);
+ if (UtilValidate.isNotEmpty(this.value)) {
+ newValue = (String) this.format(this.value, context);
+ } else if (UtilValidate.isNotEmpty(envName) &&
context.get(this.envName) != null) {
+ newValue = (String) this.format((String)
context.get(this.envName), context);
}
if (newValue != null) {
- if (map != null) {
- map.put(fieldName, newValue);
- context.put(mapName, map);
- } else {
- context.put(fieldName, newValue);
- }
+ if (UtilValidate.isNotEmpty(this.mapName)) {
+ this.map.put(this.fieldName, newValue);
+ context.put(this.mapName, this.map);
+ } else {
+ context.put(this.fieldName, newValue);
+ }
}
}
}