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]

Reply via email to