|
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.ConcurrentModificationException (Error running script at location [component://order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy]: java.util.ConcurrentModificationException) If nobody is working with it or something related, I can take a look at it later. Cheers, -- ----- Jonatan Soto |
|
Administrator
|
I get the same at
https://demo-trunk.ofbiz.apache.org/ordermgr/control/orderview?orderId=WSCO10001 Could be related to recent changes Jacques From: "Jonatan Soto" <[hidden email]> > 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.ConcurrentModificationException (Error running script at location > [component://order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy]: > java.util.ConcurrentModificationException) > > > If nobody is working with it or something related, I can take a look at it > later. > > Cheers, > > -- > ----- > > Jonatan Soto > |
|
In reply to this post by jonatan soto
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.ConcurrentModificationException Exception: java.util.ConcurrentModificationException Message: null ---- stack trace --------------------------------------------------------------- java.util.ConcurrentModificationException 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$PojoMetaMethodSiteNoUnwrapNoCoerce.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.ConcurrentModificationException. Rolling back transaction. On Fri, May 10, 2013 at 1:21 PM, Jonatan Soto <[hidden email]>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.ConcurrentModificationException (Error running script at location > [component://order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy]: > java.util.ConcurrentModificationException) > > > If nobody is working with it or something related, I can take a look at it > later. > > Cheers, > > -- > ----- > > Jonatan Soto > -- ----- Jonatan Soto |
|
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.ConcurrentModificationException Exception: > java.util.ConcurrentModificationException Message: null ---- stack trace > --------------------------------------------------------------- > java.util.ConcurrentModificationException > 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$PojoMetaMethodSiteNoUnwrapNoCoerce.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.ConcurrentModificationException. Rolling back transaction. > > > > > > On Fri, May 10, 2013 at 1:21 PM, Jonatan Soto <[hidden email]>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.ConcurrentModificationException (Error running script at location >> [component://order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy]: >> java.util.ConcurrentModificationException) >> >> >> If nobody is working with it or something related, I can take a look at it >> later. >> >> Cheers, >> >> -- >> ----- >> >> Jonatan Soto >> > > |
|
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.ConcurrentModificationException Exception: >> java.util.ConcurrentModificationException Message: null ---- stack trace >> --------------------------------------------------------------- >> java.util.ConcurrentModificationException >> 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$PojoMetaMethodSiteNoUnwrapNoCoerce.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.ConcurrentModificationException. Rolling back transaction. >> >> >> >> >> >> On Fri, May 10, 2013 at 1:21 PM, Jonatan Soto >> <[hidden email]>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.ConcurrentModificationException (Error running script at >>> location >>> [component://order/webapp/ordermgr/WEB-INF/actions/order/OrderView.groovy]: >>> >>> java.util.ConcurrentModificationException) >>> >>> >>> If nobody is working with it or something related, I can take a look >>> at it >>> later. >>> >>> Cheers, >>> >>> -- >>> ----- >>> >>> Jonatan Soto >>> >> >> > |
|
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 On Fri, May 10, 2013 at 2:38 PM, Adrian Crum < [hidden email]> 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 <[hidden email]> >>> **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 >>>> >>>> >>> >>> >> > -- ----- Jonatan Soto |
|
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 > > > > > On Fri, May 10, 2013 at 2:38 PM, Adrian Crum < > [hidden email]> 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 <[hidden email]> >>>> **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 >>>>> >>>>> >>>> > |
|
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 < [hidden email]> 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 <[hidden email]>> >> 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 < >>>>> [hidden email]> >>>>> **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 >>>>>> >>>>>> >>>>>> >>>>> >> > -- ----- Jonatan Soto |
|
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 < > [hidden email]> 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 <[hidden email]>> >>> 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 < >>>>>> [hidden email]> >>>>>> **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 >>>>>>> >>>>>>> >>>>>>> > |
|
Administrator
|
Is there a Jira for that, should we not commit and backport?
Jacques From: "Adrian Crum" <[hidden email]> > 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 < >> [hidden email]> 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 <[hidden email]>> >>>> 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 < >>>>>>> [hidden email]> >>>>>>> **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 >>>>>>>> >>>>>>>> >>>>>>>> >> > |
|
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 < [hidden email]> wrote: > Is there a Jira for that, should we not commit and backport? > > Jacques > > From: "Adrian Crum" <[hidden email]> > > 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 < > >> [hidden email]> 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 < > [hidden email]>> > >>>> 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 < > >>>>>>> [hidden email]> > >>>>>>> **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 > >>>>>>>> > >>>>>>>> > >>>>>>>> > >> > > > -- ----- Jonatan Soto |
|
Administrator
|
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 < > [hidden email]> wrote: > >> Is there a Jira for that, should we not commit and backport? >> >> Jacques >> >> From: "Adrian Crum" <[hidden email]> >>> 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 < >>>> [hidden email]> 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 < >> [hidden email]>> >>>>>> 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 < >>>>>>>>> [hidden email]> >>>>>>>>> **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 |
|
FYI, you can also use some of groovy's other collection methods:
// Retrieve all non-promo items that aren't cancelled context.orderItemListFiltered = orderReadHelper.getOrderItems().findAll { item -> (item.isPromo == null || item.isPromo == 'N') && !(item.statusId.equals('ITEM_CANCELLED')) } Regards Scott On 12/05/2013, at 12:39 AM, Jacques Le Roux wrote: > 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 < >> [hidden email]> wrote: >> >>> Is there a Jira for that, should we not commit and backport? >>> >>> Jacques >>> >>> From: "Adrian Crum" <[hidden email]> >>>> 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 < >>>>> [hidden email]> 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 < >>> [hidden email]>> >>>>>>> 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 < >>>>>>>>>> [hidden email]> >>>>>>>>>> **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 |
|
That looks good too and more cleaner. Thanks Scott.
I will try it and provide a new patch asap containing that approach. On Mon, May 13, 2013 at 5:44 AM, Scott Gray <[hidden email]>wrote: > FYI, you can also use some of groovy's other collection methods: > // Retrieve all non-promo items that aren't cancelled > context.orderItemListFiltered = orderReadHelper.getOrderItems().findAll { > item -> > (item.isPromo == null || item.isPromo == 'N') && > !(item.statusId.equals('ITEM_CANCELLED')) > } > > Regards > Scott > > On 12/05/2013, at 12:39 AM, Jacques Le Roux wrote: > > > 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 < > >> [hidden email]> wrote: > >> > >>> Is there a Jira for that, should we not commit and backport? > >>> > >>> Jacques > >>> > >>> From: "Adrian Crum" <[hidden email]> > >>>> 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 < > >>>>> [hidden email]> 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 < > >>> [hidden email]>> > >>>>>>> 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 < > >>>>>>>>>> [hidden email]> > >>>>>>>>>> **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 > > -- ----- Jonatan Soto |
| Free forum by Nabble | Edit this page |
