Is there a Jira for that, should we not commit and backport? Jacques
From: "Adrian Crum" <adrian.c...@sandglass-software.com> > 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 >>>>>>>> >>>>>>>> >>>>>>>> >> >