Bug 51728

Summary: error parsing valid EL expression
Product: Tomcat 7 Reporter: Adolfo Benedetti <adolfo.benedetti>
Component: JasperAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED DUPLICATE    
Severity: major    
Priority: P2    
Version: 7.0.20   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X 10.4   

Description Adolfo Benedetti 2011-08-26 21:30:15 UTC
Jasper fails parsing a valid EL the expression;

    <c:when test="${documentBean.class.simpleName == 'FaqBean'}">

.....

Caused by: org.apache.jasper.JasperException: /WEB-INF/tags/canonicalPath.tag (line: 24, column: 4) "${documentBean.class.simpleName == 'FaqBean'}" contains invalid expression(s): javax.el.ELException: Failed to parse the expression [${documentBean.class.simpleName == 'FaqBean'}]
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1218)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:870)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:889)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1790)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644)
	at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:241)
	at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:578)
	at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:49)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:655)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:673)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:229)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644)
	at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:241)
	at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:578)
	at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:49)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:655)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:659)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
	at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:673)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:229)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
	at org.hippoecm.hst.core.container.HstComponentInvokerImpl.invokeDispatcher(HstComponentInvokerImpl.java:410)
	at org.hippoecm.hst.core.container.HstComponentInvokerImpl.invokeRender(HstComponentInvokerImpl.java:217)
	... 71 more
Comment 1 Konstantin Kolinko 2011-08-26 21:56:49 UTC
You have not provided the full error message (have you looked into the logs?)

[[[
... with root cause
javax.el.ELException: The identifier [class] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true.
]]]

Anyway, your EL expression is invalid, You can use the following equivalent one instead:
${documentBean['class'].simpleName == 'FaqBean'}
Comment 2 Konstantin Kolinko 2011-08-26 21:59:15 UTC

*** This bug has been marked as a duplicate of bug 49217 ***