[Resin-interest] tag cast issues???

2010-03-19 Thread Rick Mann
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???

2010-03-19 Thread Rick Mann
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