[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-2359) ArrayIndexOutOfBoundsException in org.jboss.seam.contexts.BasicContext.getNames()

Przemyslaw Jaskierski (JIRA) jira-events at lists.jboss.org
Wed Dec 12 03:59:51 EST 2007


    [ http://jira.jboss.com/jira/browse/JBSEAM-2359?page=comments#action_12391732 ] 
            
Przemyslaw Jaskierski commented on JBSEAM-2359:
-----------------------------------------------

Sorry for late reply but your JIRA notification hasn't reached me somehow...

Norman,
Nothing non-standard. I'm spawning 20 threads, which sequentially, independently process c.a. 40 read-data-only pages in a loop. Most of these pages use s:cache to avoid unnecessary RDBMS calls. In this scenario this cache is not being invalidated in any way, so after caches get populated requests are served pretty quickly. After each loop a new session is created (JMeter's cookie manager drops previous session context) and I let old session get expired after 5 minutes timeout. As soon as caches are ready I've got 50 requests/second served and this error (and in very marginal cases JBSEAM-2360 <no fix version set>) start appearing.

Pages data is backed by PAGE scoped beans, there are some SESSION-scoped utility beans (some of these with @Startup annotation) bound to every session. Nothing unusual here, and until I put some concurrency tests on this everything was fine. But now I have this issue as well as JBSEAM-2086 and (very, very rarely) JBSEAM-2360. This issue is still present after applying my workaround for JBSEAM-2086. Got 3-8 such exceptions per every minute.

> ArrayIndexOutOfBoundsException in org.jboss.seam.contexts.BasicContext.getNames()
> ---------------------------------------------------------------------------------
>
>                 Key: JBSEAM-2359
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-2359
>             Project: JBoss Seam
>          Issue Type: Bug
>    Affects Versions: 2.0.0.GA
>         Environment: Tomcat 6.0.13, Seam CVS 2007-12-07
>            Reporter: Przemyslaw Jaskierski
>            Priority: Critical
>             Fix For: 2.0.1.GA
>
>
> Load tests. 20 JMeter http threads create session for every iteration on a bunch of pages. Session timeout set to 5 minutes. After 2 minutes I get this:
> Dec 8, 2007 1:04:48 AM org.apache.catalina.session.StandardSession tellNew
> SEVERE: Session event listener threw exception
> java.lang.ArrayIndexOutOfBoundsException: 180
> 	at org.jboss.seam.contexts.BasicContext.getNames(BasicContext.java:60)
> 	at org.jboss.seam.contexts.Contexts.startup(Contexts.java:270)
> 	at org.jboss.seam.contexts.Lifecycle.beginSession(Lifecycle.java:187)
> 	at org.jboss.seam.contexts.ServletLifecycle.beginSession(ServletLifecycle.java:124)
> 	at org.jboss.seam.servlet.SeamListener.sessionCreated(SeamListener.java:44)
> 	at org.apache.catalina.session.StandardSession.tellNew(StandardSession.java:397)
> 	at org.apache.catalina.session.StandardSession.setId(StandardSession.java:369)
> 	at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:829)
> 	at org.apache.catalina.session.StandardManager.createSession(StandardManager.java:291)
> 	at org.apache.catalina.connector.Request.doGetSession(Request.java:2312)
> 	at org.apache.catalina.connector.Request.getSession(Request.java:2075)
> 	at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
> 	at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
> 	at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:545)
> 	at com.sun.faces.context.SessionMap.getSession(ExternalContextImpl.java:1002)
> 	at com.sun.faces.context.SessionMap.get(ExternalContextImpl.java:962)
> 	at org.jboss.seam.contexts.BasicContext.get(BasicContext.java:48)
> 	at org.jboss.seam.Component.getInstance(Component.java:1851)
> 	at org.jboss.seam.Component.getInstance(Component.java:1829)
> 	at org.jboss.seam.web.Session.getInstance(Session.java:122)
> 	at org.jboss.seam.contexts.FacesLifecycle.beginRequest(FacesLifecycle.java:54)
> 	at org.jboss.seam.jsf.SeamPhaseListener.beforeRestoreView(SeamPhaseListener.java:368)
> 	at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:139)
> 	at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:116)
> 	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)
> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
> 	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
> 	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
> 	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
> 	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
> 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
> 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
> 	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
> 	at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:183)
> 	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:125)
> 	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:107)
> 	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:78)
> 	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:383)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
> 	at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 	at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list