https://bz.apache.org/bugzilla/show_bug.cgi?id=57845

            Bug ID: 57845
           Summary: Multiple JspServletWrapper's sharing one
                    JspCompilationContext
           Product: Tomcat 7
           Version: 7.0.56
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Jasper
          Assignee: dev@tomcat.apache.org
          Reporter: j...@yahoo.com

Copied from
http://stackoverflow.com/questions/24567224/tomcat-serving-cached-alias:

Setup:  One jsp served at multiple urls:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
    <servlet-name>Main</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>Main</servlet-name>
    <url-pattern>/advanced/</url-pattern>
</servlet-mapping>

When I change the contents of index.jsp and visit /, it is updated.  Then when
I visit /advanced/ it is not updated.  I expect both URL's contents to be
updated.  If I change index.jsp again and visit /advanced/ first, it is
up-to-date, but / is not.

I spent some time in org.apache.jasper.compiler.Compiler#isOutDated(boolean),
and I've found that only the first URL that I visit is the one that is marked
outDated. The second URL I visit is never marked outDated. So it's as if tomcat
keeps two instances of JspServlet but share the same outDated information for
the file, so when one JspServlet marks it as outDated and sets reload, the
second JspServlet never recompiles it nor serves the recompiled version.

(Also happened in 7.0.47 and some earlier versions of Tomcat7.  Never tried it
on Tomcat6 or 8.)

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to