IllegalArgumentException: Value is no String (Bug in HtmlRendererUtils?)
I get the following exception if I submit my form via a normal
h:commandLink and no option is set for an extended HtmlSelectOneRadio
component.
java.lang.IllegalArgumentException: Value is no String
(class=org.apache.myfaces.shared_impl.renderkit.RendererUtils$1,
[EMAIL PROTECTED])
and component docform:moveTowith path: {Component-Path : [Class:
org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: /workbench.jsp][Class:
org.apache.myfaces.custom.div.Div,Id: content][Class:
org.apache.myfaces.custom.div.Div,Id: workbench][Class:
javax.faces.component.html.HtmlForm,Id: docform][Class:
org.apache.myfaces.custom.div.Div,Id: metaDataBox][Class:
org.ajax4jsf.ajax.html.HtmlAjaxOutputPanel,Id: a4jDocProfile][Class:
org.apache.myfaces.custom.div.Div,Id: metaDataDiv][Class:
org.apache.myfaces.custom.div.Div,Id: mdob][Class:
org.apache.myfaces.custom.div.Div,Id: mdbctinp][Class:
com.recommind.li.client.web.faces.selectOne.SelectOneRadio,Id: moveTo]}
does not have a Converter
at
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getConvertedS
tringValue(RendererUtils.java:536)
at
com.recommind.li.client.web.faces.selectOne.RadioRenderer.encodeEnd(Radi
oRenderer.java:104)
at
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536
)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.ja
va:249)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase
.java:225)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.ja
va:247)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase
.java:225)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.ja
va:247)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase
.java:225)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChild(RendererBase.ja
va:247)
at
org.ajax4jsf.framework.renderer.RendererBase.renderChildren(RendererBase
.java:225)
at
org.ajax4jsf.renderers.ajax.AjaxOutputPanelRenderer.encodeChildren(AjaxO
utputPanelRenderer.java:74)
I debugged my app and discovered following:
- submittedValue is set to
"[EMAIL PROTECTED]"
- This is caused by
org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.decodeUI
SelectOne(FacesContext facesContext,UIComponent component).
It containt the follwing code:
if (paramMap.containsKey(clientId)) {
//request parameter found, set submitted value
((EditableValueHolder)
component).setSubmittedValue(paramMap.get(clientId));
} else {
//see reason for this action at decodeUISelectMany
((EditableValueHolder) component).setSubmittedValue(
RendererUtils.NOTHING );
}
Environment:
myfaces 1.1.4
tomahawk 1.1.4 snapshot
a4j 1.0.6rc1
tiles
jre 1.5.0_10
If I submit my form via Ajax links and no option is set, then i works
well.
Any ideas what's going wrong here ?
Michael