Slight clarification: the tag isn't getting recompiled, just the page  
that calls it.

On Jun 24, 2009, at 18:57:57, Rick Mann wrote:

> I've got a fairly straightforward page that includes these lines:
>
> <%@ taglib prefix="lz" tagdir="/WEB-INF/tags/lz"
> %>
> .
> .
> .
> <head>
>     <title>My Page</title>
>     <lz:base/>
> .
> .
> .
> </head>
> .
> .
> .
>
> In resin 4.0.0, the presence of the <lz:base/> tag triggers some work
> on Resin's part that results in recompiling both the tag and the page.
> The tag is defined by a .tag file in WEB-INF/tags/lz:
>
> <%...@tag body-content="empty"
> %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core";
> %><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt";
> %><%
>     if (("http".equals(request.getScheme()) &&
> request.getLocalPort() != 80)
>         || ("https".equals(request.getScheme()) &&
> request.getLocalPort() != 443))
>     {
>         request.setAttribute("port", ":" + request.getLocalPort());
>     }
> %><base href="${pageContext.request.scheme}://$
> {pageContext.request.serverName}${port}$
> {pageContext.request.contextPath}/"/>
>
>
> Here is what I see in the logs (set to FINE for most everything): the
> request comes in, resin decides that the class created for the base
> tag is missing, recompiles it, and then detects that the class digest
> is modified (notably, the new digest is -1, whereas the old is
> -4088317106370417708). So then it compiles the page's JSP again.
>
> Timing for the request on the browser shows it takes about 300 ms
> (repeated reloads) to get it when I include the tag, and about 40 ms
> when I don't.
>
> If I include the code for the tag directly in my JSP, I see no
> recompilation, and similarly rapid page loads. Referencing JSTL tags
> like fmt: does not seem to cause this difficulty.
>
> I also see a "_jsp._index__jsp destroy" message in the logs before it
> gets the ClassNotFoundException. I don't know what that means.
>
> Here are the logs:
>
> [06-24 18:47:18.919] {http--80-9}  FINE
> (com.caucho.server.port.TcpConnection) TcpConnection[id=9,] starting
> connection TcpConnection[id=http--80-9,http://*:80,ACCEPT], total=5
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] GET / HTTP/1.1
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Remote-IP:
> 12.155.29.1:56273
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Host: satdb.org
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] User-Agent: Mozilla/5.0
> (Macintosh; U; Intel Mac OS X 10_5_7; en-us) AppleWebKit/530.17
> (KHTML, like Gecko) Version/4.0 Safari/530.17
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Cache-Control: max-age=0
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Accept: application/
> xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/ 
> png,*/
> *;q=0.5
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Accept-Language: en-us
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Accept-Encoding: gzip,
> deflate
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Cookie:
> JSESSIONID=aaaRgt_gP5iYl6bUVcvis
> [06-24 18:47:18.920] {http--80-9}  FINE
> (com.caucho.server.http.HttpRequest) Http[9] Connection: keep-alive
> [06-24 18:47:18.931] {http--80-9}  FINE (com.caucho.jsp.Page)
> _jsp._index__jsp destroy
> [06-24 18:47:18.931] {http--80-9}  FINE (com.caucho.jsp.PageManager)
> Jsp[] uri:/index.jsp(cp:,app:/export/home/satdb/www/org/satdb/www) - 
> > /
> export/home/satdb/www/org/satdb/www/index.jsp
> [06-24 18:47:18.936] {http--80-9}  FINE
> (com.caucho.make.ClassDependency) java.lang.ClassNotFoundException:
> _jsp._WEB_22dINF._tags._lz._base__tag in EnvironmentClassLoader[web-
> app:http://default]
> [06-24 18:47:18.936] {http--80-9}       at
> com 
> .caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:
> 1313)
> [06-24 18:47:18.936] {http--80-9}       at
> com 
> .caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:
> 1291)
> [06-24 18:47:18.936] {http--80-9}       at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> [06-24 18:47:18.936] {http--80-9}       at
> java.lang.Class.forName0(Native Method)
> [06-24 18:47:18.936] {http--80-9}       at
> java.lang.Class.forName(Class.java:247)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.make.ClassDependency.<init>(ClassDependency.java:84)
> [06-24 18:47:18.936] {http--80-9}       at
> _jsp._index__jsp.init(_index__jsp.java:143)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.JspManager.preload(JspManager.java:320)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.JspManager.compile(JspManager.java:218)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.JspManager.createPage(JspManager.java:171)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.JspManager.createPage(JspManager.java:150)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.PageManager.getPage(PageManager.java:307)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.PageManager.getPage(PageManager.java:237)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.PageManager.getPage(PageManager.java:220)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.QServlet.getSubPage(QServlet.java:295)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.jsp.QServlet.getPage(QServlet.java:210)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho
> .server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:238)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:
> 145)
> [06-24 18:47:18.936] {http--80-9}       at
> com.latencyzero.satdb.RequestFilter.doFilter(RequestFilter.java:114)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho
> .server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
> [06-24 18:47:18.936] {http--80-9}       at
> org
> .springframework
> .orm
> .hibernate3
> .support
> .OpenSessionInViewFilter 
> .doFilterInternal(OpenSessionInViewFilter.java:
> 198)
> [06-24 18:47:18.936] {http--80-9}       at 
> org.springframework.web.filter.OncePerRequestFilter.doFilter
> (OncePerRequestFilter.java:76)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho
> .server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho
> .server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:185)
> [06-24 18:47:18.936] {http--80-9}       at
> com
> .caucho
> .server.dispatch.ServletInvocation.service(ServletInvocation.java:264)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:275)
> [06-24 18:47:18.936] {http--80-9}       at
> com 
> .caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:
> 644)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.server.port.TcpConnection
> $AcceptTask.doAccept(TcpConnection.java:1311)
> [06-24 18:47:18.936] {http--80-9}       at
> com.caucho.server.port.TcpConnection 
> $AcceptTask.run(TcpConnection.java:
> 1252)
> [06-24 18:47:18.936] {http--80-9}       at com.caucho.util.ThreadPool
> $PoolThread.runTasks(ThreadPool.java:866)
> [06-24 18:47:18.936] {http--80-9}       at com.caucho.util.ThreadPool
> $PoolThread.run(ThreadPool.java:779)
> [06-24 18:47:18.936] {http--80-9}
> [06-24 18:47:18.936] {http--80-9}  FINE
> (com.caucho.make.ClassDependency)
> _jsp._WEB_22dINF._tags._lz._base__tag class digest is modified
> (old=-4088317106370417708,new=-1)
> [06-24 18:47:18.974] {http--80-9}  CONFIG
> (com.caucho.java.JavaCompiler) Compiling _jsp/_index__jsp.java
> [06-24 18:47:18.975] {Thread-59}  FINE
> (com.caucho.loader.JarListLoader) tools.jar does not exist (path=/usr/
> local/java/versions/jdk1.6.0_12/jre/lib/tools.jar)
> [06-24 18:47:19.138] {Thread-59}  FINE
> (com.caucho.java.InternalCompiler)
> [06-24 18:47:19.142] {http--80-9}  FINE (com.caucho.java.JavaCompiler)
> merging .smap for _index__jsp.class
>
>
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest



_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to