Author: jleroux
Date: Thu Oct 30 18:03:43 2014
New Revision: 1635567
URL:
http://svn.apache.org/r1635567Log:
Commit for
https://issues.apache.org/jira/browse/OFBIZ-5843Re-running the same load test with a service call proves that the problem was not in the service call but only in the minilang implementation. So putting back this part.
There are more work to do as suggested Scott on dev ML: the call could be done in the same transaction right before committing, to reduce the amount of time the lock is held. But for now it's enough
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1635567&r1=1635566&r2=1635567&view=diff==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java Thu Oct 30 18:03:43 2014
@@ -281,10 +281,15 @@ public class OrderServices {
normalizedItemQuantities.put(currentProductId, currentQuantity.add(orderItem.getBigDecimal("quantity")));
}
- Map<String, Object> countContext = new HashMap<String, Object>();
- countContext.put("productId", currentProductId);
- countContext.put("quantity", orderItem.getBigDecimal("quantity"));
- countProductQuantityOrdered(ctx, countContext);
+ try {
+ // count product ordered quantities
+ // run this synchronously so it will run in the same transaction
+ dispatcher.runSync("countProductQuantityOrdered", UtilMisc.<String, Object>toMap("productId", currentProductId, "quantity", orderItem.getBigDecimal("quantity"), "userLogin", userLogin));
+ } catch (GenericServiceException e1) {
+ Debug.logError(e1, "Error calling countProductQuantityOrdered service", module);
+ return ServiceUtil.returnError(UtilProperties.getMessage(resource_error,
+ "OrderErrorCallingCountProductQuantityOrderedService",locale) + e1.toString());
+ }
}
}