Anonymous | Login | Signup for a new account | 12-17-2024 10:52 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0000703 | [Resin] | minor | always | 01-05-06 09:00 | 01-10-06 15:01 | ||||
Reporter | ferg | View Status | public | ||||||
Assigned To | |||||||||
Priority | urgent | Resolution | fixed | ||||||
Status | closed | Product Version | 3.0.17 | ||||||
Summary | 0000703: IllegalStateException for getAttribute | ||||||||
Description |
(rep by Bryan Davis) There are are other areas where resin (3.0.16) is throwing exception in PageContext.removeAttribute when the session is invalid. This is counter to the J2EE specification ( http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/jsp/JspContext.html#removeAttribute(java.lang.String) [^] ) which indicates that no such exception should be thrown. Below is the jsp code that is throwing the exception, the generated java code from the jsp and the stack trace, as well as a patch to correct the problem jsp code <c:forEach items="${stylesheetList}" var="s"> <link rel="stylesheet" type="text/css" href="${s}" /> </c:forEach> generated java code: while (_jsp_iter_29.hasNext()) { Object _jsp_i_29 = _jsp_iter_29.next(); pageContext.setAttribute("s", _jsp_i_29); _jsp_loop_4.setCurrent(_jsp_i_29, _jsp_iter_29.hasNext()); out.write(_jsp_string6, 0, _jsp_string6.length); out.print(_caucho_expr_5.evalStringNonNull(pageContext)); out.write(_jsp_string7, 0, _jsp_string7.length); } pageContext.pageSetOrRemove("s", _jsp_oldVar_29); out.write(_jsp_string8, 0, _jsp_string8.length); if (_jsp_UseAttributeTag_4 == null) { _jsp_UseAttributeTag_4 = new org.apache.struts.taglib.tiles.UseAttributeTag(); _jsp_UseAttributeTag_4.setPageContext(pageContext); _jsp_UseAttributeTag_4.setParent((javax.servlet.jsp.tagext.Tag) null); _jsp_UseAttributeTag_4.setClassname("java.util.List"); _jsp_UseAttributeTag_4.setIgnore(true); } exception java.lang.IllegalStateException: Can't call removeAttribute(String) when session is no longer valid. at com.caucho.server.session.SessionImpl.removeAttribute(SessionImpl.java:359) at com.caucho.jsp.PageContextImpl.removeAttribute(PageContextImpl.java:322) at com.caucho.jsp.PageContextImpl.pageSetOrRemove(PageContextImpl.java:1500) at _jsp._WEB_22dINF._jsp._tiles._layout._brand._newauction__jspx._jspService(_newauction__jspx.java:131) at com.caucho.jsp.JavaPage.service(JavaPage.java:60) at com.caucho.jsp.Page.pageservice(Page.java:570) at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:159) at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:268) at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106) at com.foo.ui.brand.BrandManager.tilePage(BrandManager.java:629) at com.foo.framework.servlet.BaseServlet.processTilesDefinition(BaseServlet.java:404) at com.foo.framework.servlet.BaseServlet.displayPage(BaseServlet.java:325) at com.foo.framework.servlet.BaseServlet.handleAction(BaseServlet.java:208) at com.foo.framework.servlet.BaseServlet.service(BaseServlet.java:84) at javax.servlet.http.HttpServlet.service(HttpServlet.java:92) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106) at com.foo.hibernate.HibernateFilter.doFilter(HibernateFilter.java:55) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at com.foo.servlet.filter.PrincipalFilter.doFilter(PrincipalFilter.java:44) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at com.foo.servlet.filter.AdrefCookieFilter.doFilter(AdrefCookieFilter.java:117) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at com.foo.servlet.filter.TrackingFilter.doFilter(TrackingFilter.java:190) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at com.foo.servlet.filter.UrlTranslateFilter.doFilter(UrlTranslateFilter.java:129) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70) at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:209) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229) at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:419) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:388) at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:490) at com.caucho.util.ThreadPool.run(ThreadPool.java:423) at java.lang.Thread.run(Thread.java:595) patch: -- PageContextImpl.java 2006-01-04 16:06:43.000000000 -0600 +++ PageContextImpl.java.orig 2006-01-04 16:06:09.000000000 -0600 @@ -318,11 +318,8 @@ // jsp/162b if (_request != null) _request.removeAttribute(name); - try - { - if (_session != null) - _session.removeAttribute(name); - } catch (IllegalStateException iex) {} + if (_session != null) + _session.removeAttribute(name); if (_application != null) _application.removeAttribute(name); } |
||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
28 total queries executed. 25 unique queries executed. |