Author: lektran Date: Fri Aug 2 06:14:37 2013 New Revision: 1509550 URL: http://svn.apache.org/r1509550 Log: Merged from trunk r1509510: Fix bug preventing deadlock retries for groovy services, GenericEngine implementations and services should never modify the service context
Modified: ofbiz/branches/release11.04/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java Modified: ofbiz/branches/release11.04/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java URL: http://svn.apache.org/viewvc/ofbiz/branches/release11.04/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java?rev=1509550&r1=1509549&r2=1509550&view=diff ============================================================================== --- ofbiz/branches/release11.04/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java (original) +++ ofbiz/branches/release11.04/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java Fri Aug 2 06:14:37 2013 @@ -68,14 +68,17 @@ public final class GroovyEngine extends } Map<String, Object> params = FastMap.newInstance(); params.putAll(context); - context.put("parameters", params); + + Map<String, Object> gContext = FastMap.newInstance(); + gContext.putAll(context); + gContext.put("parameters", params); DispatchContext dctx = dispatcher.getLocalContext(localName); - context.put("dctx", dctx); - context.put("dispatcher", dctx.getDispatcher()); - context.put("delegator", dispatcher.getDelegator()); + gContext.put("dctx", dctx); + gContext.put("dispatcher", dctx.getDispatcher()); + gContext.put("delegator", dispatcher.getDelegator()); try { - Script script = InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(this.getLocation(modelService)), GroovyUtil.getBinding(context)); + Script script = InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(this.getLocation(modelService)), GroovyUtil.getBinding(gContext)); Object resultObj = null; if (UtilValidate.isEmpty(modelService.invoke)) { resultObj = script.run(); @@ -84,8 +87,8 @@ public final class GroovyEngine extends } if (resultObj != null && resultObj instanceof Map<?, ?>) { return cast(resultObj); - } else if (context.get("result") != null && context.get("result") instanceof Map<?, ?>) { - return cast(context.get("result")); + } else if (gContext.get("result") != null && gContext.get("result") instanceof Map<?, ?>) { + return cast(gContext.get("result")); } } catch (GeneralException e) { throw new GenericServiceException(e);