[
https://issues.apache.org/jira/browse/TOMAHAWK-1469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12787959#action_12787959
]
Igor Spac commented on TOMAHAWK-1469:
-------------------------------------
I use Debian/Tomcat5.5/JSF1.2
I am not aware of the exact scenario (I see this exception randomly in server
logs), but I was able to reproduce this as follows:
1. Open the page where captcha is usually displayed.
2. Copy image url for captcha image.
3. Clear cookies.
4. Navigate to captcha image URL.
Hope this helps.
> CAPTCHA renderer throws exception when session is missing
> ---------------------------------------------------------
>
> Key: TOMAHAWK-1469
> URL: https://issues.apache.org/jira/browse/TOMAHAWK-1469
> Project: MyFaces Tomahawk
> Issue Type: Bug
> Components: Captcha
> Affects Versions: 1.1.9
> Environment: Debian/Tomcat5.5
> Reporter: Igor Spac
> Assignee: Hazem Saleh
>
> CAPTCHARenderer.renderCAPTCHA throws exception in case session is missing.
> This happens because session attribute is set after the image being rendered.
> The fix would involve setting the attribute before rendering the image.
> Full stack trace:
> java.lang.IllegalStateException: Cannot create a session after the response
> has been committed
> at
> org.apache.catalina.connector.Request.doGetSession(Request.java:2221)
> at org.apache.catalina.connector.Request.getSession(Request.java:2031)
> at
> org.apache.catalina.connector.RequestFacade$GetSessionPrivilegedAction.run(RequestFacade.java:196)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:830)
> at
> org.apache.myfaces.context.servlet.SessionMap.setAttribute(SessionMap.java:56)
> at
> org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:105)
> at
> org.apache.myfaces.util.AbstractAttributeMap.put(AbstractAttributeMap.java:38)
> at
> org.apache.myfaces.custom.captcha.CAPTCHARenderer.renderCAPTCHA(CAPTCHARenderer.java:207)
> at
> org.apache.myfaces.custom.captcha.CAPTCHARenderer.serveResource(CAPTCHARenderer.java:159)
> at
> org.apache.myfaces.renderkit.html.util.NonBufferingAddResource.serveResource(NonBufferingAddResource.java:544)
> at
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:268)
> at sun.reflect.GeneratedMethodAccessor244.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
> at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
> at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
> at
> org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192)
> at
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
> at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
> at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.