[Resin-interest] tag cast issues???
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:ifc:if test=${!neg}+/c:iffmt: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)
Re: [Resin-interest] tag cast issues???
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:ifc:if test=${!neg}+/c:iffmt: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