portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ate Douma (JIRA)" <jetspeed-...@portals.apache.org>
Subject [jira] Reopened: (JS2-735) Jetty-6 ConcurrentModificationException on logout
Date Tue, 19 Jun 2007 13:12:26 GMT

     [ https://issues.apache.org/jira/browse/JS2-735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ate Douma reopened JS2-735:
---------------------------


Jetty (6.1.4) has a similar problem when redepoying apps.
As Jetty then invalidates *all* sessions (sic), the PortalSessionManager is also invalidated
leading again to the same type of exception.

I'm going to modify our PortalSessionsManager solution with an additional optional constructor
parameter, forceInvalidate, which will by default be true, but needs to be set to false for
Jetty.


> Jetty-6 ConcurrentModificationException on logout
> -------------------------------------------------
>
>                 Key: JS2-735
>                 URL: https://issues.apache.org/jira/browse/JS2-735
>             Project: Jetspeed 2
>          Issue Type: Bug
>    Affects Versions: 2.1
>         Environment: jetty-6.1.3 jetspeed-2.1
>            Reporter: Sergey Parilin
>            Assignee: Ate Douma
>             Fix For: 2.1.1
>
>         Attachments: jetspeed-jetty-deploy-files.zip
>
>
> I'm trying to deploy my jetspeed-2 based portal to jetty-6.
> My portal deploys successfully and working fine, but a get ConcurrentModificationException
when i pressing logout link.
> Here is a stack trace:
> java.util.ConcurrentModificationException
>     at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
>     at java.util.HashMap$KeyIterator.next(Unknown Source)
>     at org.mortbay.jetty.servlet.AbstractSessionManager$Session.doInvalidate(AbstractSessionManager.java:921)
>     at org.mortbay.jetty.servlet.AbstractSessionManager$Session.invalidate(AbstractSessionManager.java:902)
>     at org.apache.jetspeed.login.LogoutServlet.doGet(LogoutServlet.java:38)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1098)
>     at org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAttackFilter.java:51)
>     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
>     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
>     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
>     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
>     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
>     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
>     at org.mortbay.jetty.Server.handle(Server.java:285)
>     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>     at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
>     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
>     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
>     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
>     at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:368)
>     at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

> I think this issue is a result of the recursive Session.invalidate() invocation by 
> org.apache.jetspeed.container.session.PortalSessionMonitorImpl.invalidateSession()
> org.apache.jetspeed.container.session.PortalSessionsManagerImpl.portalSessionDestroyed(PortalSessionMonitor)
> org.mortbay.jetty.servlet.AbstractSessionManager.Session.unbindValue(String, Object)
> I mean that Session.invalidate() calls Session.unbindValue() which calls above-listed
stack and PortalSessionMonitorImpl.invalidateSession() calls Session.invalidate()  again.
> Steps how to deploy jetspeed to jetty
> 1. Install jetty-6.1.3
> 2. Download attached file jetspeed-jetty-deploy-files.zip from attachment
> 3. Unzip this file to jetty.home
> 4. Copy shared jetspeed libs to jetty.home/lib/
> 5. Copy jetspeed webapp folder to jetty.home/webapps-jetspeed/
> 6. Copy j2-admin.war to  jetty.home/webapps-jetspeed/
> 7 Open jetty.home/etc/jetty-jetspeed.xml and change c:/tmp/j2 to your path to derby database
> 8. start jetty with command      java -jar start.jar etc/jetty-jetspeed.xml
> 9. Copy jetspeed-layouts to deploy/local folder of jetspeed
> 10. Wait for layouts deployment.
> 10. Restart jetty server (Stop it and start with java -jar start.jar etc/jetty-jetspeed.xml)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message