That is correct.
-Adrian
On 5/11/2013 11:41 AM, Jonatan Soto wrote:
Ok, I think I got it. My solution only covered first problem, but the
second problem implies that the first problem is no longer a problem
because the original order item list has to remain unmodified for further
usage. So this might fix problem 2:
orderItemListFiltered = new LinkedList();
orderItemList = orderReadHelper.getOrderItems();
orderItemList.each { orderItem ->
if (UtilValidate.isEmpty(orderItem.get("isPromo")) ||
"N".equals(orderItem.get("isPromo"))) {
orderItemListFiltered.add(orderItem);
} else {
if (!"ITEM_CANCELLED".equals(orderItem.get("statusId")))
orderItemListFiltered.add(orderItem);
}
}
context.orderItemList = orderItemListFiltered;
HTH
On Sat, May 11, 2013 at 11:47 AM, Adrian Crum <
adrian.c...@sandglass-software.com> wrote:
There are two problems with that part of the script:
1. It modifies a List while iterating over it.
2. It modifies a List that is contained by OrderReadHelper - so any
further use of OrderReadHelper will produce incorrect data.
The solution is to iterate over the List contained on OrderReadHelper and
build a new List based on the selection criteria. In other words, create a
new List that excludes canceled promo items instead of modifying the
existing List.
-Adrian
On 5/11/2013 10:41 AM, Jonatan Soto wrote:
I could fix the issue by doing the following at line 122 of that groovy
file:
//canceledPromoOrderItem = [:];
orderItemList = orderReadHelper.getOrderItems(**);
for (Iterator iter = orderItemList.iterator(); iter.hasNext();) {
//orderItemList.each { orderItem ->
orderItem = iter.next();
if("Y".equals(orderItem.get("**isPromo")) &&
"ITEM_CANCELLED".equals(**orderItem.get("statusId"))) {
//canceledPromoOrderItem = orderItem;
iter.remove();
}
Debug.log("orderItem ==========> " + orderItem);
}
I've proceed in that way according to what I read from the LinkedList java
doc http://docs.oracle.com/javase/**6/docs/api/java/util/**
LinkedList.html<http://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html>
On Fri, May 10, 2013 at 2:38 PM, Adrian Crum <
adrian.crum@sandglass-**software.com <adrian.c...@sandglass-software.com>>
wrote:
Actually, OrderView.groovy line 122 doesn't make any sense. That is a
flaw
in the groovy code, not a problem with the List implementation.
-Adrian
On 5/10/2013 1:09 PM, Adrian Crum wrote:
It appears LinkedList was not a good replacement for FastList. I will
take care of it this weekend.
-Adrian
On 5/10/2013 12:32 PM, Jonatan Soto wrote:
This is a more detailed stack trace btw. Note that once this happens is
not
possible to edit the order anymore.
2013-05-10 12:23:43,348 (ajp-bio-0.0.0.0-8009-exec-****511) [
ScreenFactory.java:130:INFO ] Got 29 screens in 0.0080s from:
file:/home/ofbiz/trunk/****applications/order/widget/****
ordermgr/OrderViewScreens.xml
2013-05-10 12:23:43,522 (ajp-bio-0.0.0.0-8009-exec-****511) [
ScriptUtil.java:347:WARN ] ---- runtime exception report
------------------------------****-------------------- Error running
script at
location
[component://order/webapp/****ordermgr/WEB-INF/actions/****
order/OrderView.groovy]:
java.util.****ConcurrentModificationExceptio****n Exception:
java.util.****ConcurrentModificationExceptio****n Message: null ----
stack
trace
------------------------------****----------------------------**
--**---
java.util.****ConcurrentModificationExceptio****n
java.util.LinkedList$ListItr.****checkForComodification(**
LinkedList.java:761)
java.util.LinkedList$ListItr.****next(LinkedList.java:696)
org.codehaus.groovy.runtime.****DefaultGroovyMethods.each(**
DefaultGroovyMethods.java:****1375)
org.codehaus.groovy.runtime.****DefaultGroovyMethods.each(**
DefaultGroovyMethods.java:****1348)
org.codehaus.groovy.runtime.****dgm$162.invoke(Unknown Source)
org.codehaus.groovy.runtime.****callsite.PojoMetaMethodSite$**
PojoMetaMethodSiteNoUnwrapNoCo****erce.invoke(****
PojoMetaMethodSite.java:271)
org.codehaus.groovy.runtime.****callsite.PojoMetaMethodSite.**
call(PojoMetaMethodSite.java:****53)
org.codehaus.groovy.runtime.****callsite.CallSiteArray.**
defaultCall(CallSiteArray.****java:42)
org.codehaus.groovy.runtime.****callsite.AbstractCallSite.**
call(AbstractCallSite.java:****108)
org.codehaus.groovy.runtime.****callsite.AbstractCallSite.**
call(AbstractCallSite.java:****116)
OrderView.run(OrderView.****groovy:122)
org.ofbiz.base.util.****GroovyUtil.****runScriptAtLocation(**
GroovyUtil.java:172)
org.ofbiz.base.util.****GroovyUtil.****runScriptAtLocation(**
GroovyUtil.java:165)
org.ofbiz.base.util.****ScriptUtil.executeScript(****
ScriptUtil.java:342)
org.ofbiz.base.util.****ScriptUtil.executeScript(****
ScriptUtil.java:324)
org.ofbiz.widget.****ModelWidgetAction$Script.**
runAction(ModelWidgetAction.****java:414)
org.ofbiz.widget.****ModelWidgetAction.****runSubActions(****
ModelWidgetAction.java:114)
org.ofbiz.widget.screen.****ModelScreenWidget$Section.**
renderWidgetString(****ModelScreenWidget.java:184)
org.ofbiz.widget.screen.****ModelScreen.****renderScreenString(****
ModelScreen.java:396)
org.ofbiz.widget.screen.****ScreenRenderer.render(**
ScreenRenderer.java:135)
org.ofbiz.widget.screen.****ScreenRenderer.render(**
ScreenRenderer.java:97)
org.ofbiz.widget.screen.****MacroScreenViewHandler.render(****
MacroScreenViewHandler.java:****104)
org.ofbiz.webapp.control.****RequestHandler.renderView(****
RequestHandler.java:898)
org.ofbiz.webapp.control.****RequestHandler.doRequest(****
RequestHandler.java:599)
org.ofbiz.webapp.control.****ControlServlet.doGet(**
ControlServlet.java:214)
org.ofbiz.webapp.control.****ControlServlet.doPost(**
ControlServlet.java:86)
javax.servlet.http.****HttpServlet.service(****HttpServlet.java:641)
javax.servlet.http.****HttpServlet.service(****HttpServlet.java:722)
org.apache.catalina.core.****ApplicationFilterChain.****
internalDoFilter(**
ApplicationFilterChain.java:****305)
org.apache.catalina.core.****ApplicationFilterChain.****doFilter(**
ApplicationFilterChain.java:****210)
org.ofbiz.webapp.control.****ContextFilter.doFilter(**
ContextFilter.java:314)
org.apache.catalina.core.****ApplicationFilterChain.****
internalDoFilter(**
ApplicationFilterChain.java:****243)
org.apache.catalina.core.****ApplicationFilterChain.****doFilter(**
ApplicationFilterChain.java:****210)
org.apache.catalina.core.****StandardWrapperValve.invoke(****
StandardWrapperValve.java:222)
org.apache.catalina.core.****StandardContextValve.invoke(****
StandardContextValve.java:123)
org.apache.catalina.****authenticator.****AuthenticatorBase.invoke(***
*AuthenticatorBase.java:472)
org.apache.catalina.core.****StandardHostValve.invoke(****
StandardHostValve.java:171)
org.apache.catalina.valves.****ErrorReportValve.invoke(****
ErrorReportValve.java:99)
org.apache.catalina.core.****StandardEngineValve.invoke(****
StandardEngineValve.java:118)
org.apache.catalina.valves.****AccessLogValve.invoke(****
AccessLogValve.java:947)
org.apache.catalina.connector.****CoyoteAdapter.service(****
CoyoteAdapter.java:408)
org.apache.coyote.ajp.****AjpProcessor.process(****
AjpProcessor.java:200)
org.apache.coyote.****AbstractProtocol$****
AbstractConnectionHandler.**
process(AbstractProtocol.java:****589)
org.apache.tomcat.util.net.****JIoEndpoint$SocketProcessor.****
run(JIoEndpoint.java:310)
java.util.concurrent.****ThreadPoolExecutor$Worker.**
runTask(ThreadPoolExecutor.****java:886)
java.util.concurrent.****ThreadPoolExecutor$Worker.run(**
**ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.****java:662)
------------------------------****----------------------------**
--**--------------------
2013-05-10 12:23:43,522 (ajp-bio-0.0.0.0-8009-exec-****511) [
ModelScreen.java:401:ERROR] Error rendering screen
[component://order/widget/****ordermgr/OrderViewScreens.xml#**
**OrderHeaderView]:
java.lang.****IllegalArgumentException: Error running script at
location
[component://order/webapp/****ordermgr/WEB-INF/actions/****
order/OrderView.groovy]:
java.util.****ConcurrentModificationExceptio****n. Rolling back
transaction.
On Fri, May 10, 2013 at 1:21 PM, Jonatan Soto <
seniledemen...@gmail.com>
**wrote:
Hi,
When cancelling an order I'm getting the following exception using the
demo (trunk) :
org.ofbiz.widget.screen.****ScreenRenderException: Error rendering
screen
[component://order/widget/****ordermgr/OrderViewScreens.xml#**
**OrderHeaderView]:
java.lang.****IllegalArgumentException: Error running script at
location
[component://order/webapp/****ordermgr/WEB-INF/actions/****
order/OrderView.groovy]:
java.util.****ConcurrentModificationExceptio****n (Error running
script at
location
[component://order/webapp/****ordermgr/WEB-INF/actions/****
order/OrderView.groovy]:
java.util.****ConcurrentModificationExceptio****n)
If nobody is working with it or something related, I can take a look
at
it
later.
Cheers,
--
-----
Jonatan Soto