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
>