DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=31772>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=31772 jsp compile error with struts bean with the same id name inside if's Summary: jsp compile error with struts bean with the same id name inside if's Product: Tomcat 5 Version: 5.0.28 Platform: PC OS/Version: Linux Status: NEW Severity: Major Priority: Other Component: Jasper AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] If we use in the same JSP the same name with a struts (1.1 or 1.0.2) bean:define id="name" tag, that will put in page scop the variable with the same name in the id, we will get a JSP compile error if this bean tag are inside if clauses. The JSP Error: "cannot resolve symbol..." This same JSP compiles fine under Tomcat 4.0.6, and not on Tomcat >= 4.1.31 ======================= STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : ======================= Sample JSP: === START HERE === <%@ page import="java.util.*"%> <%@ page import="com.whateversoft.sun.bean.*"%> <br><br> <% List lst = new ArrayList(); lst.add(new MyForm("one")); lst.add(new MyForm("two")); request.setAttribute("myList", lst); %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <logic:present name="myList"> <% int index = 0; %> <logic:iterate id="myForm" collection="<%= lst %>"> <% index++; %> <% if(index % 2 == 0) { %> <bean:define id="myName" name="myForm" property="name" type="java.lang.String"/> SomeName: <%= myName %><br/> <% } else { %> <bean:define id="myName" name="myForm" property="name" type="java.lang.String"/> SomeNameOdd: <%= myName %><br/> <% } %> </logic:iterate> </logic:present> === END HERE === === START SOURCE CODE FOR SIMPLE FORM BEAN == package com.whateversoft.sun.bean; import org.apache.struts.action.*; public class MyForm extends ActionForm { private String name = "name"; public MyForm() { } public MyForm(String aName) { setName(aName); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return name; } } === END SOURCE CODE FOR SIMPLE FORM BEAN == Error from JSP: type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 20 in the jsp file: /index.jsp Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:149: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp myName = (java.lang.String) _jspx_page_context.findAttribute("myName"); ^ Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:152: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp myName = (java.lang.String) _jspx_page_context.findAttribute("myName"); ^ An error occurred at line: 21 in the jsp file: /index.jsp Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:156: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp out.print( myName ); ^ Note: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java uses unchecked or unsafe operations. An error occurred at line: 21 in the jsp file: /index.jsp Generated servlet error: Note: Recompile with -Xlint:unchecked for details. 3 errors org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332) org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412) org.apache.jasper.compiler.Compiler.compile(Compiler.java:472) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) Complete Stack Trace ===================== 2004-10-19 12:29:15 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 20 in the jsp file: /index.jsp Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:149: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp myName = (java.lang.String) _jspx_page_context.findAttribute("myName"); ^ Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:152: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp myName = (java.lang.String) _jspx_page_context.findAttribute("myName"); ^ An error occurred at line: 21 in the jsp file: /index.jsp Generated servlet error: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java:156: cannot find symbol symbol : variable myName location: class org.apache.jsp.index_jsp out.print( myName ); ^ Note: /local/java/jakarta-tomcat-5.0.28/work/Catalina/localhost/SampleWebModule1/org/apache/jsp/index_jsp.java uses unchecked or unsafe operations. An error occurred at line: 21 in the jsp file: /index.jsp Generated servlet error: Note: Recompile with -Xlint:unchecked for details. 3 errors at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332) at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:472) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]