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

Emond Papegaaij commented on WICKET-6353:
-----------------------------------------

I've added some docs. I can understand that the code seems strange, but it's 
simply copy-pasted from the superclass. Unfortunately, ObjectInputStream is not 
designed very well, so copy-pasting and reflection are the only way to get this 
working.

> Proxy deserialization fails due to classloading issues
> ------------------------------------------------------
>
>                 Key: WICKET-6353
>                 URL: https://issues.apache.org/jira/browse/WICKET-6353
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 7.6.0
>            Reporter: Emond Papegaaij
>
> JavaSerializer.ClassResolverObjectInputStream overrides resolveClass to 
> resolve classes via the Wicket ClassResolvers. This does however not happen 
> for resolveProxyClass.
> An example of how this can go wrong:
> * A page with a large component tree is deserialized (war).
> * LinkedMap (used in MarkupContainer) is loaded in a parent ClassLoader (ear).
> * Via this stack, a proxy is hit implementing Spring classes (from the war)
> * Due to LinkedMap determining the latestUserDefinedLoader, the ear-loader is 
> used for the lookup of this interface, which fails
> Unfortunately, writing a testcase for this is not easy, so I only have a 
> proposed fix: see the classloadingfix branch



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to