Failure to evaluate Ternary operators in EL : JBoss 5.0.0-Be
saasira Apr 10, 2008 6:32 AMHi!
I'm getting the following error when my page contains Ternary operators in EL :
javax.servlet.ServletException: Error Parsing: #{width !=null?width:300} javax.faces.webapp.FacesServlet.service(FacesServlet.java:256) org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) com.avaya.panther.faces.util.ResourceInjectionFilter.doFilter(ResourceInjectionFilter.java:45) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:241) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:198) org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:141) org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause javax.el.ELException: Error Parsing: #{width !=null?width:300} org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:125) org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:146) org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:190) org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68) com.sun.facelets.tag.TagAttribute.getValueExpression(TagAttribute.java:256) com.sun.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:69) com.sun.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:36) com.sun.facelets.tag.MetaTagHandler.setAttributes(MetaTagHandler.java:62) com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:144) com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314) com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169) com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25) com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) ................................................................................................... ................................................................................................... root cause org.apache.el.parser.ParseException: Encountered "width: 300" at line 1, column 16. Was expecting one of: "(" ... <IDENTIFIER> ... <NAMESPACE> <IDENTIFIER> ... org.apache.el.parser.ELParser.generateParseException(ELParser.java:1874) org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:1754) org.apache.el.parser.ELParser.NonLiteral(ELParser.java:1136) org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1030) org.apache.el.parser.ELParser.Value(ELParser.java:978) org.apache.el.parser.ELParser.Unary(ELParser.java:960) org.apache.el.parser.ELParser.Multiplication(ELParser.java:723) org.apache.el.parser.ELParser.Math(ELParser.java:643) org.apache.el.parser.ELParser.Compare(ELParser.java:455) org.apache.el.parser.ELParser.Equality(ELParser.java:349) org.apache.el.parser.ELParser.And(ELParser.java:293) org.apache.el.parser.ELParser.Or(ELParser.java:237) org.apache.el.parser.ELParser.Choice(ELParser.java:203) org.apache.el.parser.ELParser.Expression(ELParser.java:183) and more....
We are migrating our code from WAS 6.1 to JBoss.
The same el expression is working fine in Tomcat 6.0.14 or WebSphere 6.1.
Can some one explain why the tomcat el processor is not able to parse that expression, when it does if it is not in JBoss!
Has Jboss done any changes to the Tomcat engine which is causing this failure?
Or may be am i missing some thing that needs to be done for Jboss?
awaiting your answer,
Thanking you in advance,
Samba