I'm pretty sure resin is borking the Java file generation of my tag. I've written a bug with all my notes about how the cast can't work as is:
http://bugs.caucho.com/bug_view_advanced_page.php?bug_id=3956 On Mar 19, 2010, at 18:32:30, Rick Mann wrote: > ARghh. If it's not one thing, it's another. I'm finally 99% in place with > resin-4.0.4, and suddenly I notice this stack trace, for a JSP tag defines > like this: > > <%...@tag body-content="empty" > %><%...@attribute name="value" required="true" rtexprvalue="true" > type="java.lang.Long" description="Duration value in seconds" > %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" > %><%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" > %><% > long interval = (Long) pageContext.getAttribute("value"); > boolean neg = interval < 0; > interval = Math.abs(interval); > > long hours = interval / 3600; > interval -= hours * 3600; > > long minutes = interval / 60; > interval -= minutes * 60; > > long seconds = interval; > > hours = Math.abs(hours); > minutes = Math.abs(minutes); > seconds = Math.abs(seconds); > > pageContext.setAttribute("neg", neg); > pageContext.setAttribute("hours", hours); > pageContext.setAttribute("minutes", minutes); > pageContext.setAttribute("seconds", seconds); > %><c:if test="${neg}">-</c:if><c:if test="${!neg}">+</c:if><fmt:formatNumber > value="${hours}" pattern="00"/>:<fmt:formatNumber value="${minutes}" > pattern="00"/>:<fmt:formatNumber value="${seconds}" pattern="00"/> > > > > > trace: > > > > [show] > java.lang.ClassCastException: _jsp._WEB_22dINF._tags._lz._durT__tag cannot > be cast to javax.servlet.jsp.tagext.Tag > > > javax.servlet.ServletException: javax.servlet.ServletException: > com.caucho.jsp.QJspException: > java.lang.ClassCastException: _jsp._WEB_22dINF._tags._lz._durT__tag cannot > be cast to javax.servlet.jsp.tagext.Tag > at > org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:119) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) > at > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) > at com.latencyzero.satdb.RequestFilter.doFilter(RequestFilter.java:124) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.latencyzero.satdb.SecurityFilter.doFilter(SecurityFilter.java:215) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) > at > com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:780) > at > com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) > at > com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) > at > com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) > at > com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) > at > com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) > at > com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) > at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) > at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) > Caused by: javax.servlet.ServletException: com.caucho.jsp.QJspException: > java.lang.ClassCastException: _jsp._WEB_22dINF._tags._lz._durT__tag cannot > be cast to javax.servlet.jsp.tagext.Tag > at > com.caucho.jsp.PageContextImpl.handlePageException(PageContextImpl.java:1255) > at > _jsp._WEB_22dINF._jsp._mission__jsp._jspService(_mission__jsp.java:30) > at com.caucho.jsp.JavaPage.service(JavaPage.java:61) > at com.caucho.jsp.Page.pageservice(Page.java:535) > at > com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:283) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:121) > at > org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) > at > org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) > at > org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) > at > org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:119) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) > at > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) > at com.latencyzero.satdb.RequestFilter.doFilter(RequestFilter.java:124) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.latencyzero.satdb.SecurityFilter.doFilter(SecurityFilter.java:215) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) > at > com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:780) > at > com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) > at > com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) > at > com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) > at > com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) > at > com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) > at > com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) > at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) > at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) > Caused by: com.caucho.jsp.QJspException: java.lang.ClassCastException: > _jsp._WEB_22dINF._tags._lz._durT__tag cannot be cast to > javax.servlet.jsp.tagext.Tag > at > com.caucho.jsp.QJspException.createJspException(QJspException.java:74) > at _jsp._WEB_22dINF._tags._lz._durT__tag.doTag(_durT__tag.java:39) > at > _jsp._WEB_22dINF._jsp._mission__jsp._jspService(WEB-INF/jsp/mission.jsp:140) > at > _jsp._WEB_22dINF._jsp._mission__jsp._jspService(_mission__jsp.java:28) > at com.caucho.jsp.JavaPage.service(JavaPage.java:61) > at com.caucho.jsp.Page.pageservice(Page.java:535) > at > com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:283) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:121) > at > org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) > at > org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) > at > org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) > at > org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:119) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) > at > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) > at com.latencyzero.satdb.RequestFilter.doFilter(RequestFilter.java:124) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.latencyzero.satdb.SecurityFilter.doFilter(SecurityFilter.java:215) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) > at > com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:780) > at > com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) > at > com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) > at > com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) > at > com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) > at > com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) > at > com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) > at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) > at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) > Caused by: java.lang.ClassCastException: _jsp._WEB_22dINF._tags._lz._durT__tag > cannot be cast to javax.servlet.jsp.tagext.Tag > at > _jsp._WEB_22dINF._tags._lz._durT__tag$TagState.get_jsp_FormatNumberTag_0(_durT__tag.java:213) > at _jsp._WEB_22dINF._tags._lz._durT__tag.doTag(_durT__tag.java:90) > at _jsp._WEB_22dINF._tags._lz._durT__tag.doTag(_durT__tag.java:35) > at > _jsp._WEB_22dINF._jsp._mission__jsp._jspService(WEB-INF/jsp/mission.jsp:140) > at > _jsp._WEB_22dINF._jsp._mission__jsp._jspService(_mission__jsp.java:28) > at com.caucho.jsp.JavaPage.service(JavaPage.java:61) > at com.caucho.jsp.Page.pageservice(Page.java:535) > at > com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:283) > at > com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:121) > at > org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) > at > org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) > at > org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) > at > org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) > at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) > at > org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:119) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) > at > com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) > at com.latencyzero.satdb.RequestFilter.doFilter(RequestFilter.java:124) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.latencyzero.satdb.SecurityFilter.doFilter(SecurityFilter.java:215) > at > com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:88) > at > com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) > at > com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) > at > com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) > at > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:780) > at > com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) > at > com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) > at > com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) > at > com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) > at > com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) > at > com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) > at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) > at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) > > > > > _______________________________________________ > 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