[ https://issues.apache.org/jira/browse/OFBIZ-3486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835505#action_12835505 ]
Adam Heath commented on OFBIZ-3486: ----------------------------------- This is a not an issue. ModelScreenAction.SetField uses FlexibleStringExpander for the value, the result of which will *always* be a string, period. If you were trying to return some random object, then what would occur previously is that said object would be turned into a String, and ObjectType would then turn it back into the final object. This is very very broken. I see several instances of forms that use <set> to create a list of things, which gets converted to a string, then parsed out of the string, back into real objects. This is so very very broken. > In some cases when you pass a list of GenericValues to <list-option in form > widget you get an error saying GenericValues are not Map > ------------------------------------------------------------------------------------------------------------------------------------ > > Key: OFBIZ-3486 > URL: https://issues.apache.org/jira/browse/OFBIZ-3486 > Project: OFBiz > Issue Type: Bug > Components: ALL APPLICATIONS > Affects Versions: SVN trunk > Reporter: Jacques Le Roux > Priority: Critical > Fix For: SVN trunk > > > In some cases when you pass a list of GenericValues to <list-option in form > widget you get an error saying GenericValue is not Map. > Of course this is true. But also this was working some days ago. At least it > was working with the 909312 revision. > It's easy to reproduce. In any OOTB form widget add these snippets: > {code} > <set field="states" value="${groovy: > org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" > type="List"/> > {code} > {code} > <field name="stateProvinceGeoId" > > <drop-down allow-empty="false"> > <list-options list-name="states" key-name="geoId" > description="${geoName}"/> > </drop-down> > </field> > {code} > The error is > ---- cause > --------------------------------------------------------------------- > Exception: java.lang.ClassCastException > Message: Not a map > ---- stack trace > --------------------------------------------------------------- > java.lang.ClassCastException: Not a map > org.ofbiz.base.util.UtilGenerics.checkMap(UtilGenerics.java:77) > org.ofbiz.widget.form.ModelFormField$ListOptions.addOptionValues(ModelFormField.java:1648) > org.ofbiz.widget.form.ModelFormField$FieldInfoWithOptions.getAllOptionValues(ModelFormField.java:1529) > org.ofbiz.widget.form.MacroFormRenderer.renderDropDownField(MacroFormRenderer.java:666) > org.ofbiz.widget.form.ModelFormField$DropDownField.renderFieldString(ModelFormField.java:3043) > org.ofbiz.widget.form.ModelFormField.renderFieldString(ModelFormField.java:595) > org.ofbiz.widget.form.ModelForm.renderSingleFormString(ModelForm.java:1054) > org.ofbiz.widget.form.ModelForm.renderFormString(ModelForm.java:837) > org.ofbiz.widget.screen.ModelScreenWidget$Form.renderWidgetString(ModelScreenWidget.java:841) > org.ofbiz.widget.screen.MacroScreenRenderer.renderScreenletSubWidget(MacroScreenRenderer.java:704) > org.ofbiz.widget.screen.ModelScreenWidget$Screenlet.renderWidgetString(ModelScreenWidget.java:408) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:704) > org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:736) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:228) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:704) > org.ofbiz.widget.screen.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:167) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:736) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:296) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:228) > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:394) > org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:576) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:228) > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:394) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:672) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:228) > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:394) > org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:672) > org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:137) > org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:228) > org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:394) > 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:835) > org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:554) > org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:223) > javax.servlet.http.HttpServlet.service(HttpServlet.java:690) > javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:266) > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > java.lang.Thread.run(Thread.java:619) > -------------------------------------------------------------------------------- -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.