[ 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)