Andrew, I'm having the same issue.

Did you get it solved?

Thanks.

On 11/29/06, Andrew Robinson <[EMAIL PROTECTED]> wrote:

No that hasn't changed, I just checked the source. If you look at the
stack trace, somehow the value is an instance of
"org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils$1" -- it
is not null inside the "RendererUtils.getConvertedStringValue" method.

How in the world that happened is beyond me.

-Andrew

On 11/29/06, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> Andrew,
>
> Looking at the current code, it shouldn't throw that against a null
> value. Maybe they've changed this since your version? Perhaps you could
> try with the nightlies just to see if the same behavior happens?
>
> RenderUtils
> ------------
> public static String getConvertedStringValue(FacesContext context,
>                                                   UIComponent component,
> Converter converter, Object value) {
>          if (converter == null) {
>              if (value == null) {
>                  return "";
>              }
>              else if (value instanceof String) {
>                  return (String) value;
>              }
>              else {
>                  throw new IllegalArgumentException(
>                      "Value is no String (class=" +
> value.getClass().getName() + ", value=" + value + ") and component "
>                          + component.getClientId(context) + "with path:
"
>                          + getPathToComponent(component)
>                          + " does not have a Converter");
>              }
>          }
>
>          return converter.getAsString(context, component, value);
>      }
> -----------
>
> Maybe your version is missing the lines:
>
> if (value == null) {
>         return "";
> }
>
> Regards,
>
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
>
> Andrew Robinson wrote:
> > Yes that is correct, it was always null but only failed to render the
> > 3rd request.
> >
> > On 11/29/06, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> >> Well the reason it doesn't work is because of the null.
> >>
> >> Are you saying it was set to null the whole time, and only failed on
the
> >> 3rd request (after having canceled the dialog once)?
> >>
> >> Regards,
> >>
> >> Jeff Bischoff
> >> Kenneth L Kurz & Associates, Inc.
> >>
> >> Andrew Robinson wrote:
> >> > Found a work around -->
> >> > if "value.typeText" is set to one of the values instead of null I
> >> > don't get the exception. What I don't understand is why it works
the
> >> > other times but not the 3rd AJAX call.
> >> >
> >> > On 11/29/06, Andrew Robinson <[EMAIL PROTECTED]> wrote:
> >> >> I am getting a bit stuck on this one exception. I have two
> >> >> selectOneRadio components within an included facelet (source file)
> >> >> that bind to a property on a facelet attribute. The value is a
custom
> >> >> bean with string properties and the select items have string
values,
> >> >> so no converter should be needed. What is odd is that this
behavior is
> >> >> not constant.
> >> >>
> >> >> Setup:
> >> >> index.xhtml defines this component:
> >> >>         <ost:liveReportFilterDialog
> >> >>           id="liveReportFilterDlg"
> >> >>           ajaxZone="reportListZone"
> >> >>           rendered="#{liveReportBean.filterDialogVisible}"
> >> >>           onAcceptListener="#{liveReportBean.filterDialogAccepted
}"
> >> >>           onCancelListener="#{liveReportBean.filterDialogCanceled
}"
> >> >>           value="#{liveReportBean.filter}" />
> >> >>
> >> >> It is this "value" that I use within the
> >> "liveReportFilterDialog.xhtml":
> >> >>
> >> >>   <t:selectOneRadio
> >> >>     id="#{id}TypeOptions"
> >> >>     value="#{value.typeText}"
> >> >>     layout="pageDirection"
> >> >>     required="true">
> >> >>     <f:selectItem
> >> >>       itemLabel="#{msg.liverep_filterdlg_typefilter_graph}"
> >> >>       itemValue="osoft/livechart" />
> >> >>     <f:selectItem
> >> >>       itemLabel="#{msg.liverep_filterdlg_typefilter_report}"
> >> >>       itemValue="osoft/livereport" />
> >> >>     <f:selectItem
> >> >>       itemLabel="#{msg.liverep_filterdlg_typefilter_schedule}"
> >> >>       itemValue="osoft/liveschedule" />
> >> >>   </t:selectOneRadio>
> >> >>
> >> >> The other radio is:
> >> >>
> >> >>   <t:selectOneRadio value="#{value.ownerStr}"
> >> >>     layout="pageDirection">
> >> >>     <f:selectItem itemLabel="#{msg.liverep_filterdlg_item_all}"
> >> >>       itemValue="ALL" />
> >> >>     <f:selectItem itemLabel="#{msg.liverep_filterdlg_item_owner}"
> >> >>       itemValue="CURRENT_USER" />
> >> >>   </t:selectOneRadio>
> >> >>
> >> >>
> >> >> This dialog is usually not rendered, I change the value that the
> >> >> rendered attribte points to in an AJAX call ActionListener method.
> >> >> When I click the show, it works. Then, I click the cancel (close
the
> >> >> dialog), still okay, but when I try to open the dialog again (3rd
AJAX
> >> >> call) I get the following exception:
> >> >> java.lang.IllegalArgumentException: Value is no String
> >> >> (class=
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils$1,
> >> >>
> >> value=
[EMAIL PROTECTED])
> >>
> >> >>
> >> >> and component
> >> >>
> >>
zfpPanel:liveReportFilterDlgDialogControl:_gridBagPanelID_3:liveReportFilterDlgTypeOptionswith
> >>
> >> >>
> >> >> path: {Component-Path : [Class:
> >> >> javax.faces.component.UIViewRoot,ViewId:
> >> >> /pages/liveReport/index.xhtml][Class:
> >> >> javax.faces.component.html.HtmlForm,Id: zfpForm][Class:
> >> >> com.outlooksoft.cpm.faces.controls.HtmlGridBagPanel,Id:
> >> >> zfpPanel][Class:
> >> >> com.outlooksoft.cpm.faces.controls.HtmlGridBagCell,Id:
> >> >> zfpContentCell][Class:
> >> >> com.outlooksoft.cpm.faces.controls.UIAjaxZone,Id:
zfpBodyZone][Class:
> >> >> com.outlooksoft.cpm.livereport.controls.HtmlReportFilterDialog,Id:
> >> >> liveReportFilterDlg][Class:
> >> >> com.outlooksoft.cpm.faces.controls.UIDialog,Id:
> >> >> liveReportFilterDlgDialogControl][Class:
> >> >> com.outlooksoft.cpm.faces.controls.HtmlGridBagPanel,Id:
> >> >> _gridBagPanelID_3][Class:
> >> >> com.outlooksoft.cpm.faces.controls.HtmlGridBagCell,Id:
> >> >> _gridBagCellID_29][Class:
> >> >> org.apache.myfaces.component.html.ext.HtmlSelectOneRadio,Id:
> >> >> liveReportFilterDlgTypeOptions]} does not have a Converter
> >> >>         at
> >> >>
> >>
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getConvertedStringValue
(RendererUtils.java:536)
> >>
> >> >>
> >> >>         at
> >> >>
> >>
org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRadioRendererBase.encodeEnd
(HtmlRadioRendererBase.java:93)
> >>
> >> >>
> >> >>         at
> >> >>
> >> org.apache.myfaces.renderkit.html.ext.HtmlRadioRenderer.encodeEnd(
HtmlRadioRenderer.java:71)
> >>
> >> >>
> >> >>         at
> >> >>
> >> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java
:536)
> >> >>         at
> >> >>
> >> org.ajaxanywhere.jsf.ZoneUIComponent.renderComponent(
ZoneUIComponent.java:90)
> >>
> >> >>
> >> >> ...
> >> >>
> >> >> The "ownerStr" is "ALL" and the "typeText" is null. I have been
unable
> >> >> to determine why it fails on this 3rd call and not 1 or 2. If I
> >> >> refresh the page, the dialog is rendered & shown fine. I verified
that
> >> >> it isn't a problem with the message bundle (msg), as it still
happens
> >> >> if I hard code the itemLabel values.
> >> >>
> >> >> I am on a 1.1.3 patched version of both Tomahawk and Core.
> >> >>
> >> >> Any ideas? (also, I haven't yet found the RendererUtils$1
anonymous
> >> >> class yet to find where it is coming from)
> >> >>
> >> >> Thanks,
> >> >> -Andrew
> >> >>
> >> >
> >> >
> >> >
> >>
> >>
> >>
> >
> >
> >
>
>
>

Reply via email to