I did not look into details, but yes seems the way

Thanks

Jacques

Jonatan Soto wrote:
> There isn't afaik. Do you want me to create one if that's finally the case?
> 
> 
> On Sat, May 11, 2013 at 1:39 PM, Jacques Le Roux <
> jacques.le.r...@les7arts.com> wrote:
> 
>> 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