You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Alex (JIRA)" <ji...@apache.org> on 2009/02/09 15:57:00 UTC

[jira] Commented: (WICKET-2075) Pagemap is locked forever with some Page serialization exceptions

    [ https://issues.apache.org/jira/browse/WICKET-2075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671881#action_12671881 ] 

Alex commented on WICKET-2075:
------------------------------

The cause of the serialization issue was the described in JIRA 2077. However it looks like that runtime exceptions thrown from within AbstractPageStore.serializePage are not handled correctly and leave the page map(s) in the locked state. After that happens some/all other pages in the application can not be accesses at all (waiting on the lock). The call stack where this effect was happening is below.
As I said the original problem was the "NoSuchMethodException" in the SerializerChecker, but I think the same problem would happen with some other exceptions as well. The "unlock" code should be hardened against such problems.
========================================================================================================================
at org/apache/wicket/util/lang/Objects.objectToByteArray (Objects.java:1092)
at org/apache/wicket/protocol/http/pagestore/AbstractPageStore.serializePage (AbstractPageStore.java:197)
at org/apache/wicket/protocol/http/pagestore/DiskPageStore.storePage (DiskPageStore.java:811)
at org/apache/wicket/protocol/http/SecondLevelCacheSessionStore$SecondLevelCachePageMap.put (SecondLevelCacheSessionStore.java:333)
at org/apache/wicket/Session.requestDetached (Session.java:1371)
at org/apache/wicket/RequestCycle.detach (RequestCycle.java:1091)
at org/apache/wicket/RequestCycle.steps (RequestCycle.java:1375)
at org/apache/wicket/RequestCycle.request (RequestCycle.java:494)
at org/apache/wicket/protocol/http/WicketFilter.doGet (WicketFilter.java:357)
at org/apache/wicket/protocol/http/WicketFilter.doFilter (WicketFilter.java:200) 
.....
========================================================================================================================


> Pagemap is locked forever with some Page serialization exceptions
> -----------------------------------------------------------------
>
>                 Key: WICKET-2075
>                 URL: https://issues.apache.org/jira/browse/WICKET-2075
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.3.5
>            Reporter: Alex
>            Assignee: Matej Knopp
>
> There was a serialization problem with one of the components that was causing the pagemap to become locked forever.
> 2009-02-04 19:43:57,147 [ERROR] [WebServerPool0-0] org.apache.wicket.RequestCycle[]: there was an error detaching the request from the session ...
> java.lang.ExceptionInInitializerError
> 	at org/apache/wicket/util/io/IObjectStreamFactory$2.writeObjectOverride (IObjectStreamFactory.java:121)
> 	at java/io/ObjectOutputStream.writeObject (Unknown Source)
> 	at org/apache/wicket/util/lang/Objects.objectToByteArray (Objects.java:1092)
> 	at org/apache/wicket/protocol/http/pagestore/AbstractPageStore.serializePage (AbstractPageStore.java:197)
> 	at org/apache/wicket/protocol/http/pagestore/DiskPageStore.storePage (DiskPageStore.java:811)
> 	at org/apache/wicket/protocol/http/SecondLevelCacheSessionStore$SecondLevelCachePageMap.put (SecondLevelCacheSessionStore.java:333)
> 	at org/apache/wicket/Session.requestDetached (Session.java:1371)
> 	at org/apache/wicket/RequestCycle.detach (RequestCycle.java:1091)
> 	at org/apache/wicket/RequestCycle.steps (RequestCycle.java:1375)
> 	at org/apache/wicket/RequestCycle.request (RequestCycle.java:494)
> 	at org/apache/wicket/protocol/http/WicketFilter.doGet (WicketFilter.java:357)
> 	at org/apache/wicket/protocol/http/WicketFilter.doFilter (WicketFilter.java:200)
> 	at org/mortbay/jetty/servlet/ServletHandler$CachedChain.doFilter (ServletHandler.java:1116)
> 	at com/videoiq/fusion/camera/webserver/ThrottlingFilter.doFilter (ThrottlingFilter.java:75)
> 	at com/videoiq/fusion/camera/webserver/ThrottlingFilter.doFilter (ThrottlingFilter.java:53)
> 	at org/mortbay/jetty/servlet/ServletHandler$CachedChain.doFilter (ServletHandler.java:1116)
> 	at org/mortbay/jetty/servlet/ServletHandler.handle (ServletHandler.java:361)
> 	at org/mortbay/jetty/security/SecurityHandler.handle (SecurityHandler.java:217)
> 	at org/mortbay/jetty/servlet/SessionHandler.handle (SessionHandler.java:182)
> 	at org/mortbay/jetty/handler/ContextHandler.handle (ContextHandler.java:776)
> 	at org/mortbay/jetty/webapp/WebAppContext.handle (WebAppContext.java:418)
> 	at com/videoiq/fusion/camera/webserver/RedirectHandler.handle (RedirectHandler.java:46)
> 	at org/mortbay/jetty/handler/HandlerCollection.handle (HandlerCollection.java:129)
> 	at org/mortbay/jetty/handler/HandlerWrapper.handle (HandlerWrapper.java:153)
> 	at org/mortbay/jetty/Server.handle (Server.java:325)
> 	at org/mortbay/jetty/HttpConnection.handleRequest (HttpConnection.java:536)
> 	at org/mortbay/jetty/HttpConnection$RequestHandler.headerComplete (HttpConnection.java:865)
> 	at org/mortbay/jetty/HttpParser.parseNext (HttpParser.java:539)
> 	at org/mortbay/jetty/HttpParser.parseAvailable (HttpParser.java:212)
> 	at org/mortbay/jetty/HttpConnection.handle (HttpConnection.java:404)
> 	at org/mortbay/jetty/bio/SocketConnector$Connection.run (SocketConnector.java:228)
> 	at com/videoiq/fusion/camera/webserver/WebServerThreadPool$PoolThread.run (WebServerThreadPool.java:476)
> Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: java/io/ObjectStreamClass.lookup
> 	at org/apache/wicket/util/io/SerializableChecker.<clinit> (SerializableChecker.java:261)
> 	... 32 more
> Caused by: java.lang.NoSuchMethodException: java/io/ObjectStreamClass.lookup
> 	at java/lang/Class.getDeclaredMethod (Unknown Source)
> 	at org/apache/wicket/util/io/SerializableChecker.<clinit> (SerializableChecker.java:226)
> 	... 32 more

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