Converter changes issue?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Converter changes issue?

Jacques Le Roux
Administrator
Hi,

I have a problem with the recent converter changes I guess. In a custom application where I use a <list-options  I get an error
saying it's not a Map.

This is woirking if I revert to r909312. I will try to reproduce on a local update instance, I'm quite sure it's reproductible in
the trunk

Unfortunately I can't help much on this right now as I will be in vacation for 4 days begining tonigh and it's already rather late
here.

Jacques


Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Adam Heath-2
Jacques Le Roux wrote:

> Hi,
>
> I have a problem with the recent converter changes I guess. In a custom
> application where I use a <list-options  I get an error
> saying it's not a Map.
>
> This is woirking if I revert to r909312. I will try to reproduce on a
> local update instance, I'm quite sure it's reproductible in the trunk
>
> Unfortunately I can't help much on this right now as I will be in
> vacation for 4 days begining tonigh and it's already rather late here.

It would be nice to have more info on this, like at the very least
what actual version you were running, not just one that happened to
work for you.

For reference, there was a point where I changed how the converters
worked, to be different than what Adrian initially designed.  Last
week, I ended up undoing most of those modifications, and implemented
my features in a different way, that shouldn't affect anyone else.

Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
I'm workin on it :/

Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she is
waiting for so long... Life...

Jacques

From: "Adam Heath" <[hidden email]>

> Jacques Le Roux wrote:
>> Hi,
>>
>> I have a problem with the recent converter changes I guess. In a custom
>> application where I use a <list-options  I get an error
>> saying it's not a Map.
>>
>> This is woirking if I revert to r909312. I will try to reproduce on a
>> local update instance, I'm quite sure it's reproductible in the trunk
>>
>> Unfortunately I can't help much on this right now as I will be in
>> vacation for 4 days begining tonigh and it's already rather late here.
>
> It would be nice to have more info on this, like at the very least
> what actual version you were running, not just one that happened to
> work for you.
>
> For reference, there was a point where I changed how the converters
> worked, to be different than what Adrian initially designed.  Last
> week, I ended up undoing most of those modifications, and implemented
> my features in a different way, that shouldn't affect anyone else.
>


Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
But I can reproduce at r911227

I create a states list using (for instance)
<set field="states" value="${groovy: postalAddress?.countryGeoId ? org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>

and I use it in (slightly changed for custom labels)

        <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
tooltip="${uiLabelMap.Required}" widget-style="required">
            <drop-down allow-empty="false">
                <list-options list-name="states" key-name="geoId" description="${geoName}"/>
            </drop-down>
        </field>

I get

2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
[component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
. Rolling back transaction.
2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
---- exception report ----------------------------------------------------------
[TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
Exception: java.lang.Exception
Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a
map
---- stack trace ---------------------------------------------------------------
java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
java.lang.ClassCastException: Not a map
org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
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)

HTH (I can't do more right now)

Jacques

From: "Jacques Le Roux" <[hidden email]>

> I'm workin on it :/
>
> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she is
> waiting for so long... Life...
>
> Jacques
>
> From: "Adam Heath" <[hidden email]>
>> Jacques Le Roux wrote:
>>> Hi,
>>>
>>> I have a problem with the recent converter changes I guess. In a custom
>>> application where I use a <list-options  I get an error
>>> saying it's not a Map.
>>>
>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>
>>> Unfortunately I can't help much on this right now as I will be in
>>> vacation for 4 days begining tonigh and it's already rather late here.
>>
>> It would be nice to have more info on this, like at the very least
>> what actual version you were running, not just one that happened to
>> work for you.
>>
>> For reference, there was a point where I changed how the converters
>> worked, to be different than what Adrian initially designed.  Last
>> week, I ended up undoing most of those modifications, and implemented
>> my features in a different way, that shouldn't affect anyone else.
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Adrian Crum
In reply to this post by Jacques Le Roux
I am unable to reproduce that problem in the trunk.

-Adrian

Jacques Le Roux wrote:

> Hi,
>
> I have a problem with the recent converter changes I guess. In a custom
> application where I use a <list-options  I get an error
> saying it's not a Map.
>
> This is woirking if I revert to r909312. I will try to reproduce on a
> local update instance, I'm quite sure it's reproductible in the trunk
>
> Unfortunately I can't help much on this right now as I will be in
> vacation for 4 days begining tonigh and it's already rather late here.
>
> Jacques
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
In reply to this post by Jacques Le Roux
Missed the more important part, here it 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)
--------------------------------------------------------------------------------

Jacques

From: "Jacques Le Roux" <[hidden email]>

>I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
> But I can reproduce at r911227
>
> I create a states list using (for instance)
> <set field="states" value="${groovy: postalAddress?.countryGeoId ?
> org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
> postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>
>
> and I use it in (slightly changed for custom labels)
>
>        <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
> tooltip="${uiLabelMap.Required}" widget-style="required">
>            <drop-down allow-empty="false">
>                <list-options list-name="states" key-name="geoId" description="${geoName}"/>
>            </drop-down>
>        </field>
>
> I get
>
> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
> [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
> . Rolling back transaction.
> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
> ---- exception report ----------------------------------------------------------
> [TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
> Exception: java.lang.Exception
> Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a
> map
> ---- stack trace ---------------------------------------------------------------
> java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
> java.lang.ClassCastException: Not a map
> org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
> org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
> 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)
>
> HTH (I can't do more right now)
>
> Jacques
>
> From: "Jacques Le Roux" <[hidden email]>
>> I'm workin on it :/
>>
>> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she is
>> waiting for so long... Life...
>>
>> Jacques
>>
>> From: "Adam Heath" <[hidden email]>
>>> Jacques Le Roux wrote:
>>>> Hi,
>>>>
>>>> I have a problem with the recent converter changes I guess. In a custom
>>>> application where I use a <list-options  I get an error
>>>> saying it's not a Map.
>>>>
>>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>>
>>>> Unfortunately I can't help much on this right now as I will be in
>>>> vacation for 4 days begining tonigh and it's already rather late here.
>>>
>>> It would be nice to have more info on this, like at the very least
>>> what actual version you were running, not just one that happened to
>>> work for you.
>>>
>>> For reference, there was a point where I changed how the converters
>>> worked, to be different than what Adrian initially designed.  Last
>>> week, I ended up undoing most of those modifications, and implemented
>>> my features in a different way, that shouldn't affect anyone else.
>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
In reply to this post by Adrian Crum
Thanks Adrian,

I did not change anything in the trunk but the theme and locales.available in general.properties, also I use Postgres, that's all.
This is for sure reproductible with the last info I sent

Jacques

From: "Adrian Crum" <[hidden email]>

>I am unable to reproduce that problem in the trunk.
>
> -Adrian
>
> Jacques Le Roux wrote:
>> Hi,
>>
>> I have a problem with the recent converter changes I guess. In a custom
>> application where I use a <list-options  I get an error
>> saying it's not a Map.
>>
>> This is woirking if I revert to r909312. I will try to reproduce on a
>> local update instance, I'm quite sure it's reproductible in the trunk
>>
>> Unfortunately I can't help much on this right now as I will be in
>> vacation for 4 days begining tonigh and it's already rather late here.
>>
>> Jacques
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

David E. Jones-2
In reply to this post by Jacques Le Roux

Jacques,

It looks like the list you are trying to use in the drop-down contains something other than a Map.

-David


On Feb 17, 2010, at 5:03 PM, Jacques Le Roux wrote:

> Missed the more important part, here it 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)
> --------------------------------------------------------------------------------
>
> Jacques
>
> From: "Jacques Le Roux" <[hidden email]>
>> I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
>> But I can reproduce at r911227
>>
>> I create a states list using (for instance)
>> <set field="states" value="${groovy: postalAddress?.countryGeoId ? org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
>> postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>
>>
>> and I use it in (slightly changed for custom labels)
>>
>>       <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
>> tooltip="${uiLabelMap.Required}" widget-style="required">
>>           <drop-down allow-empty="false">
>>               <list-options list-name="states" key-name="geoId" description="${geoName}"/>
>>           </drop-down>
>>       </field>
>>
>> I get
>>
>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
>> [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
>> . Rolling back transaction.
>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
>> ---- exception report ----------------------------------------------------------
>> [TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
>> Exception: java.lang.Exception
>> Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a
>> map
>> ---- stack trace ---------------------------------------------------------------
>> java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
>> java.lang.ClassCastException: Not a map
>> org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
>> org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
>> 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)
>>
>> HTH (I can't do more right now)
>>
>> Jacques
>>
>> From: "Jacques Le Roux" <[hidden email]>
>>> I'm workin on it :/
>>>
>>> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she is
>>> waiting for so long... Life...
>>>
>>> Jacques
>>>
>>> From: "Adam Heath" <[hidden email]>
>>>> Jacques Le Roux wrote:
>>>>> Hi,
>>>>>
>>>>> I have a problem with the recent converter changes I guess. In a custom
>>>>> application where I use a <list-options  I get an error
>>>>> saying it's not a Map.
>>>>>
>>>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>>>
>>>>> Unfortunately I can't help much on this right now as I will be in
>>>>> vacation for 4 days begining tonigh and it's already rather late here.
>>>>
>>>> It would be nice to have more info on this, like at the very least
>>>> what actual version you were running, not just one that happened to
>>>> work for you.
>>>>
>>>> For reference, there was a point where I changed how the converters
>>>> worked, to be different than what Adrian initially designed.  Last
>>>> week, I ended up undoing most of those modifications, and implemented
>>>> my features in a different way, that shouldn't affect anyone else.
>>>>
>>>
>>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
Yes, actually it's a List of GenericValues returned by CommonWorkers.getAssociatedStateList()

The problem is that this was working at r909312. I call this a regression, maybe it was wrong  in the middle before, but it worked.

Jacques

From: "David E Jones" <[hidden email]>

>
> Jacques,
>
> It looks like the list you are trying to use in the drop-down contains something other than a Map.
>
> -David
>
>
> On Feb 17, 2010, at 5:03 PM, Jacques Le Roux wrote:
>
>> Missed the more important part, here it 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)
>> --------------------------------------------------------------------------------
>>
>> Jacques
>>
>> From: "Jacques Le Roux" <[hidden email]>
>>> I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
>>> But I can reproduce at r911227
>>>
>>> I create a states list using (for instance)
>>> <set field="states" value="${groovy: postalAddress?.countryGeoId ?
>>> org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
>>> postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>
>>>
>>> and I use it in (slightly changed for custom labels)
>>>
>>>       <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
>>> tooltip="${uiLabelMap.Required}" widget-style="required">
>>>           <drop-down allow-empty="false">
>>>               <list-options list-name="states" key-name="geoId" description="${geoName}"/>
>>>           </drop-down>
>>>       </field>
>>>
>>> I get
>>>
>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
>>> [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
>>> . Rolling back transaction.
>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
>>> ---- exception report ----------------------------------------------------------
>>> [TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
>>> Exception: java.lang.Exception
>>> Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not
>>> a
>>> map
>>> ---- stack trace ---------------------------------------------------------------
>>> java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
>>> java.lang.ClassCastException: Not a map
>>> org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
>>> org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
>>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
>>> 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)
>>>
>>> HTH (I can't do more right now)
>>>
>>> Jacques
>>>
>>> From: "Jacques Le Roux" <[hidden email]>
>>>> I'm workin on it :/
>>>>
>>>> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she
>>>> is
>>>> waiting for so long... Life...
>>>>
>>>> Jacques
>>>>
>>>> From: "Adam Heath" <[hidden email]>
>>>>> Jacques Le Roux wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I have a problem with the recent converter changes I guess. In a custom
>>>>>> application where I use a <list-options  I get an error
>>>>>> saying it's not a Map.
>>>>>>
>>>>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>>>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>>>>
>>>>>> Unfortunately I can't help much on this right now as I will be in
>>>>>> vacation for 4 days begining tonigh and it's already rather late here.
>>>>>
>>>>> It would be nice to have more info on this, like at the very least
>>>>> what actual version you were running, not just one that happened to
>>>>> work for you.
>>>>>
>>>>> For reference, there was a point where I changed how the converters
>>>>> worked, to be different than what Adrian initially designed.  Last
>>>>> week, I ended up undoing most of those modifications, and implemented
>>>>> my features in a different way, that shouldn't affect anyone else.
>>>>>
>>>>
>>>>
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

David E. Jones-2

No, you may be right. I haven't tested it, but your list should contain GenericValue objects that implement the Map interface and can be treated as Maps, and the list-options tag should accept those fine. Somewhere, either in the query/find operation or in the list-options iterating something is breaking this, and while I don't know if it is the conversion stuff or not it could be.

The best bet is to make it easy for others to reproduce it, perhaps by creating an issue that has a patch and instructions for applying and running it. It's great that you've nailed it down to where reverting to a certain revision makes it work, that should be useful for tracking down the cause of this.

-David


On Feb 17, 2010, at 5:51 PM, Jacques Le Roux wrote:

> Yes, actually it's a List of GenericValues returned by CommonWorkers.getAssociatedStateList()
>
> The problem is that this was working at r909312. I call this a regression, maybe it was wrong  in the middle before, but it worked.
>
> Jacques
>
> From: "David E Jones" <[hidden email]>
>>
>> Jacques,
>>
>> It looks like the list you are trying to use in the drop-down contains something other than a Map.
>>
>> -David
>>
>>
>> On Feb 17, 2010, at 5:03 PM, Jacques Le Roux wrote:
>>
>>> Missed the more important part, here it 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)
>>> --------------------------------------------------------------------------------
>>>
>>> Jacques
>>>
>>> From: "Jacques Le Roux" <[hidden email]>
>>>> I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
>>>> But I can reproduce at r911227
>>>>
>>>> I create a states list using (for instance)
>>>> <set field="states" value="${groovy: postalAddress?.countryGeoId ? org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
>>>> postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>
>>>>
>>>> and I use it in (slightly changed for custom labels)
>>>>
>>>>      <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
>>>> tooltip="${uiLabelMap.Required}" widget-style="required">
>>>>          <drop-down allow-empty="false">
>>>>              <list-options list-name="states" key-name="geoId" description="${geoName}"/>
>>>>          </drop-down>
>>>>      </field>
>>>>
>>>> I get
>>>>
>>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
>>>> [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
>>>> . Rolling back transaction.
>>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
>>>> ---- exception report ----------------------------------------------------------
>>>> [TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
>>>> Exception: java.lang.Exception
>>>> Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a
>>>> map
>>>> ---- stack trace ---------------------------------------------------------------
>>>> java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
>>>> java.lang.ClassCastException: Not a map
>>>> org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
>>>> org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
>>>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
>>>> 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)
>>>>
>>>> HTH (I can't do more right now)
>>>>
>>>> Jacques
>>>>
>>>> From: "Jacques Le Roux" <[hidden email]>
>>>>> I'm workin on it :/
>>>>>
>>>>> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she is
>>>>> waiting for so long... Life...
>>>>>
>>>>> Jacques
>>>>>
>>>>> From: "Adam Heath" <[hidden email]>
>>>>>> Jacques Le Roux wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I have a problem with the recent converter changes I guess. In a custom
>>>>>>> application where I use a <list-options  I get an error
>>>>>>> saying it's not a Map.
>>>>>>>
>>>>>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>>>>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>>>>>
>>>>>>> Unfortunately I can't help much on this right now as I will be in
>>>>>>> vacation for 4 days begining tonigh and it's already rather late here.
>>>>>>
>>>>>> It would be nice to have more info on this, like at the very least
>>>>>> what actual version you were running, not just one that happened to
>>>>>> work for you.
>>>>>>
>>>>>> For reference, there was a point where I changed how the converters
>>>>>> worked, to be different than what Adrian initially designed.  Last
>>>>>> week, I ended up undoing most of those modifications, and implemented
>>>>>> my features in a different way, that shouldn't affect anyone else.
>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Converter changes issue?

Jacques Le Roux
Administrator
Hi David,

Nothing better than a good night for the soul (and the body ;o). I was a little upset yesterday night, and I briefly explained why.
This said I understand that the current enhancements in the Converter or the Freamework in general are great. I see of much care is
taken to avoid this kind of issues by testing every details, and explaining how to do the same. That's all great and we know all
that IT is not Math and that despite all our efforts this will always happen one day or another.

By chance, in our case no lifes are in danger. I think about cars, they put so much electronics in them. It's certainly good for the
business, not sure for drivers and theirs passengers. I was listening an expert yesterday at TV. There are some cases which are ok,
even if the electronic is screwed anyway at least if it works it may save your life. There are others cases wich are really
questionable. 2 small examples: in the last second on an opened road without anybody but you and a bend, if you are losing the
control of your car (ice, etc.) some embedded systems may save your life. But what about this case : on an higway someone for any
reason suddenly change of lane, instinctively you try to escape this "fool" (he/r may have h/her own reason) by turning the
steering-wheel abruptly, but an embedded system thinks that you are losing the control and force you to keep your lane: big crash in
the higway, many deaths. Of course I don't speak about all this issues you get when you car begin to age...
Don't try to look for analogies here, I simply coul'd not resist to tell this story I heard. I'm sure there are already good
cartoons that explain that better than me :o)

I have createe https://issues.apache.org/jira/browse/OFBIZ-3486 to make things clearer. I will be back in 4 days, then maybe a good
surprise. Have fun

Jacques


From: "David E Jones" <[hidden email]>

> No, you may be right. I haven't tested it, but your list should contain GenericValue objects that implement the Map interface and
> can be treated as Maps, and the list-options tag should accept those fine. Somewhere, either in the query/find operation or in the
> list-options iterating something is breaking this, and while I don't know if it is the conversion stuff or not it could be.
>
> The best bet is to make it easy for others to reproduce it, perhaps by creating an issue that has a patch and instructions for
> applying and running it. It's great that you've nailed it down to where reverting to a certain revision makes it work, that should
> be useful for tracking down the cause of this.
>
> -David
>
>
> On Feb 17, 2010, at 5:51 PM, Jacques Le Roux wrote:
>
>> Yes, actually it's a List of GenericValues returned by CommonWorkers.getAssociatedStateList()
>>
>> The problem is that this was working at r909312. I call this a regression, maybe it was wrong  in the middle before, but it
>> worked.
>>
>> Jacques
>>
>> From: "David E Jones" <[hidden email]>
>>>
>>> Jacques,
>>>
>>> It looks like the list you are trying to use in the drop-down contains something other than a Map.
>>>
>>> -David
>>>
>>>
>>> On Feb 17, 2010, at 5:03 PM, Jacques Le Roux wrote:
>>>
>>>> Missed the more important part, here it 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)
>>>> --------------------------------------------------------------------------------
>>>>
>>>> Jacques
>>>>
>>>> From: "Jacques Le Roux" <[hidden email]>
>>>>> I did not reproduce with the lists used in the trunk OOTB (I tried Party Roles and Invoice Items)
>>>>> But I can reproduce at r911227
>>>>>
>>>>> I create a states list using (for instance)
>>>>> <set field="states" value="${groovy: postalAddress?.countryGeoId ?
>>>>> org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator,
>>>>> postalAddress.countryGeoId) : org.ofbiz.common.CommonWorkers.getAssociatedStateList(delegator, null)}" type="List"/>
>>>>>
>>>>> and I use it in (slightly changed for custom labels)
>>>>>
>>>>>      <field use-when="states!=null" name="stateProvinceGeoId" title="${uiLabelMap.StateWithSpacesPrefix}"
>>>>> tooltip="${uiLabelMap.Required}" widget-style="required">
>>>>>          <drop-down allow-empty="false">
>>>>>              <list-options list-name="states" key-name="geoId" description="${geoName}"/>
>>>>>          </drop-down>
>>>>>      </field>
>>>>>
>>>>> I get
>>>>>
>>>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [        ModelScreen.java:399:ERROR] Error rendering screen
>>>>> [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException: Not a map
>>>>> . Rolling back transaction.
>>>>> 2010-02-18 00:58:04,734 (http-0.0.0.0-8443-4) [    TransactionUtil.java:372:WARN ]
>>>>> ---- exception report ----------------------------------------------------------
>>>>> [TransactionUtil.setRollbackOnly] Calling transaction setRollbackOnly; this stack trace shows where this is happening:
>>>>> Exception: java.lang.Exception
>>>>> Message: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]: java.lang.ClassCastException:
>>>>> Not a
>>>>> map
>>>>> ---- stack trace ---------------------------------------------------------------
>>>>> java.lang.Exception: Error rendering screen [component://common/widget/CommonScreens.xml#GlobalDecorator]:
>>>>> java.lang.ClassCastException: Not a map
>>>>> org.ofbiz.entity.transaction.TransactionUtil.setRollbackOnly(TransactionUtil.java:372)
>>>>> org.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:319)
>>>>> org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:402)
>>>>> 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)
>>>>>
>>>>> HTH (I can't do more right now)
>>>>>
>>>>> Jacques
>>>>>
>>>>> From: "Jacques Le Roux" <[hidden email]>
>>>>>> I'm workin on it :/
>>>>>>
>>>>>> Just a little annoying as it's past midnight here and my wife will be waiting me tomorrow morning for our 4 vacation days she
>>>>>> is
>>>>>> waiting for so long... Life...
>>>>>>
>>>>>> Jacques
>>>>>>
>>>>>> From: "Adam Heath" <[hidden email]>
>>>>>>> Jacques Le Roux wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I have a problem with the recent converter changes I guess. In a custom
>>>>>>>> application where I use a <list-options  I get an error
>>>>>>>> saying it's not a Map.
>>>>>>>>
>>>>>>>> This is woirking if I revert to r909312. I will try to reproduce on a
>>>>>>>> local update instance, I'm quite sure it's reproductible in the trunk
>>>>>>>>
>>>>>>>> Unfortunately I can't help much on this right now as I will be in
>>>>>>>> vacation for 4 days begining tonigh and it's already rather late here.
>>>>>>>
>>>>>>> It would be nice to have more info on this, like at the very least
>>>>>>> what actual version you were running, not just one that happened to
>>>>>>> work for you.
>>>>>>>
>>>>>>> For reference, there was a point where I changed how the converters
>>>>>>> worked, to be different than what Adrian initially designed.  Last
>>>>>>> week, I ended up undoing most of those modifications, and implemented
>>>>>>> my features in a different way, that shouldn't affect anyone else.
>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>
>>
>