You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "burghard.britzke" <bu...@charmides.in-berlin.de> on 2012/06/10 15:49:53 UTC
EL Resolver throws InvocationTargetException (char-long conversation)
for the jsf-source
Line 57: <h:graphicImage value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"></h:graphicImage>
and the bean
public class Person implements Serializable {
@Column(name = "\"geschlecht\"", nullable = false, length = 1)
private char geschlecht;
...
MyFaces 2.1.7 throws
java.lang.reflect.InvocationTargetException
Caused by:<br/>javax.el.ELException - Cannot convert w of type class java.lang.String to class java.lang.Long
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
personen.xhtml at line 57 and column 92 value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"
Why does it try to convert the char 'w' to a long values although the referenced field is a char value?
burghard@airbub
Re: EL Resolver throws InvocationTargetException (char-long conversation)
Posted by "burghard.britzke" <bu...@charmides.in-berlin.de>.
downgrading to Apache Tomcat 7.0.25 did it. So it may be an issue with Tomcat 7.0.27.
Am 10.06.2012 um 22:18 schrieb burghard.britzke:
> sorry for missing to indicate the versions: I am using tomcat 7.0.27, primefaces 3.3, myfaces 2.1.17, weld 1.1.8
> may be it is a weld issue?
>
> my stacktrace is (notice the arrow):
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at javax.faces.component._ComponentAttributesMap.getComponentProperty(_ComponentAttributesMap.java:579)
> at javax.faces.component._ComponentAttributesMap.get(_ComponentAttributesMap.java:288)
> at org.apache.myfaces.shared.renderkit.RendererUtils.getIconSrc(RendererUtils.java:1596)
> at org.apache.myfaces.shared.renderkit.html.HtmlImageRendererBase.encodeEnd(HtmlImageRendererBase.java:92)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
> at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:537)
> at org.primefaces.component.panelgrid.PanelGridRenderer.encodeDynamicBody(PanelGridRenderer.java:92)
> at org.primefaces.component.panelgrid.PanelGridRenderer.encodeBody(PanelGridRenderer.java:60)
> at org.primefaces.component.panelgrid.PanelGridRenderer.encodeEnd(PanelGridRenderer.java:49)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
> at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
> at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
> at org.primefaces.component.dialog.DialogRenderer.encodeContent(DialogRenderer.java:173)
> at org.primefaces.component.dialog.DialogRenderer.encodeMarkup(DialogRenderer.java:103)
> at org.primefaces.component.dialog.DialogRenderer.encodeEnd(DialogRenderer.java:41)
> at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
> at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:537)
> at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:533)
> at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:533)
> at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1908)
> at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
> at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
> at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> Caused by: org.apache.myfaces.view.facelets.el.ContextAwareELException: javax.el.ELException: Cannot convert w of type class java.lang.String to class java.lang.Long
> at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:104)
> at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:246)
> at javax.faces.component.UIGraphic.getValue(UIGraphic.java:105)
> at javax.faces.component.UIGraphic.getUrl(UIGraphic.java:62)
> ... 45 more
> Caused by: javax.el.ELException: Cannot convert w of type class java.lang.String to class java.lang.Long
> at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
> at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:283)
> at org.apache.el.lang.ELSupport.equals(ELSupport.java:144)
> at org.apache.el.parser.AstEqual.getValue(AstEqual.java:40)
> at org.apache.el.parser.AstChoice.getValue(AstChoice.java:45)
> at org.apache.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:44)
> at org.apache.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:50)
> at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
> --> at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
> at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
> ... 48 more
>
>
> Am 10.06.2012 um 16:19 schrieb Martin Koci:
>
>> Hi,
>>
>> this is not a Myfaces issue, but bug in EL implementation. You can see
>> org.apache.el.lang in stack = tomcat EL implementation.
>> Do you use tomcat < 7.0.8 or WAS < 8.0.02? If so, please upgrade. See
>> [1] [2] and [3] for details.
>>
>> [1] https://issues.apache.org/jira/browse/MYFACES-3533
>> [2] https://issues.apache.org/jira/browse/MYFACES-3535
>> [3] https://issues.apache.org/bugzilla/show_bug.cgi?id=50790
>>
>>
>> burghard.britzke píše v Ne 10. 06. 2012 v 15:49 +0200:
>>> for the jsf-source
>>> Line 57: <h:graphicImage value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"></h:graphicImage>
>>>
>>> and the bean
>>> public class Person implements Serializable {
>>> @Column(name = "\"geschlecht\"", nullable = false, length = 1)
>>> private char geschlecht;
>>> ...
>>>
>>> MyFaces 2.1.7 throws
>>> java.lang.reflect.InvocationTargetException
>>> Caused by:<br/>javax.el.ELException - Cannot convert w of type class java.lang.String to class java.lang.Long
>>> at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
>>> personen.xhtml at line 57 and column 92 value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"
>>>
>>> Why does it try to convert the char 'w' to a long values although the referenced field is a char value?
>>>
>>>
>>> burghard@airbub
>>>
>>
>>
>
Re: EL Resolver throws InvocationTargetException (char-long conversation)
Posted by "burghard.britzke" <bu...@charmides.in-berlin.de>.
sorry for missing to indicate the versions: I am using tomcat 7.0.27, primefaces 3.3, myfaces 2.1.17, weld 1.1.8
may be it is a weld issue?
my stacktrace is (notice the arrow):
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.faces.component._ComponentAttributesMap.getComponentProperty(_ComponentAttributesMap.java:579)
at javax.faces.component._ComponentAttributesMap.get(_ComponentAttributesMap.java:288)
at org.apache.myfaces.shared.renderkit.RendererUtils.getIconSrc(RendererUtils.java:1596)
at org.apache.myfaces.shared.renderkit.html.HtmlImageRendererBase.encodeEnd(HtmlImageRendererBase.java:92)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:537)
at org.primefaces.component.panelgrid.PanelGridRenderer.encodeDynamicBody(PanelGridRenderer.java:92)
at org.primefaces.component.panelgrid.PanelGridRenderer.encodeBody(PanelGridRenderer.java:60)
at org.primefaces.component.panelgrid.PanelGridRenderer.encodeEnd(PanelGridRenderer.java:49)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.dialog.DialogRenderer.encodeContent(DialogRenderer.java:173)
at org.primefaces.component.dialog.DialogRenderer.encodeMarkup(DialogRenderer.java:103)
at org.primefaces.component.dialog.DialogRenderer.encodeEnd(DialogRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:657)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:537)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:533)
at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:533)
at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1908)
at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.myfaces.view.facelets.el.ContextAwareELException: javax.el.ELException: Cannot convert w of type class java.lang.String to class java.lang.Long
at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:104)
at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:246)
at javax.faces.component.UIGraphic.getValue(UIGraphic.java:105)
at javax.faces.component.UIGraphic.getUrl(UIGraphic.java:62)
... 45 more
Caused by: javax.el.ELException: Cannot convert w of type class java.lang.String to class java.lang.Long
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:283)
at org.apache.el.lang.ELSupport.equals(ELSupport.java:144)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:40)
at org.apache.el.parser.AstChoice.getValue(AstChoice.java:45)
at org.apache.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:44)
at org.apache.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:50)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
--> at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96)
... 48 more
Am 10.06.2012 um 16:19 schrieb Martin Koci:
> Hi,
>
> this is not a Myfaces issue, but bug in EL implementation. You can see
> org.apache.el.lang in stack = tomcat EL implementation.
> Do you use tomcat < 7.0.8 or WAS < 8.0.02? If so, please upgrade. See
> [1] [2] and [3] for details.
>
> [1] https://issues.apache.org/jira/browse/MYFACES-3533
> [2] https://issues.apache.org/jira/browse/MYFACES-3535
> [3] https://issues.apache.org/bugzilla/show_bug.cgi?id=50790
>
>
> burghard.britzke píše v Ne 10. 06. 2012 v 15:49 +0200:
>> for the jsf-source
>> Line 57: <h:graphicImage value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"></h:graphicImage>
>>
>> and the bean
>> public class Person implements Serializable {
>> @Column(name = "\"geschlecht\"", nullable = false, length = 1)
>> private char geschlecht;
>> ...
>>
>> MyFaces 2.1.7 throws
>> java.lang.reflect.InvocationTargetException
>> Caused by:<br/>javax.el.ELException - Cannot convert w of type class java.lang.String to class java.lang.Long
>> at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
>> personen.xhtml at line 57 and column 92 value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"
>>
>> Why does it try to convert the char 'w' to a long values although the referenced field is a char value?
>>
>>
>> burghard@airbub
>>
>
>
Re: EL Resolver throws InvocationTargetException (char-long
conversation)
Posted by Martin Koci <ma...@gmail.com>.
Hi,
this is not a Myfaces issue, but bug in EL implementation. You can see
org.apache.el.lang in stack = tomcat EL implementation.
Do you use tomcat < 7.0.8 or WAS < 8.0.02? If so, please upgrade. See
[1] [2] and [3] for details.
[1] https://issues.apache.org/jira/browse/MYFACES-3533
[2] https://issues.apache.org/jira/browse/MYFACES-3535
[3] https://issues.apache.org/bugzilla/show_bug.cgi?id=50790
burghard.britzke píše v Ne 10. 06. 2012 v 15:49 +0200:
> for the jsf-source
> Line 57: <h:graphicImage value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"></h:graphicImage>
>
> and the bean
> public class Person implements Serializable {
> @Column(name = "\"geschlecht\"", nullable = false, length = 1)
> private char geschlecht;
> ...
>
> MyFaces 2.1.7 throws
> java.lang.reflect.InvocationTargetException
> Caused by:<br/>javax.el.ELException - Cannot convert w of type class java.lang.String to class java.lang.Long
> at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
> personen.xhtml at line 57 and column 92 value="/images/#{personenBean.aktuellePerson.geschlecht eq 'w' ? 'fe':''}male.png"
>
> Why does it try to convert the char 'w' to a long values although the referenced field is a char value?
>
>
> burghard@airbub
>