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
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>
>

Reply via email to