You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "bf (JIRA)" <ji...@apache.org> on 2011/03/05 19:50:45 UTC
[jira] Updated: (WICKET-3503) LazyInitProxyFactory using
Class.forName(clazz) rather than
Thread.currentThread().getContextClassLoader().loadClass(type)
[ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
bf updated WICKET-3503:
-----------------------
Attachment: wicket-bug.zip
This was the project setup that I was using, but I cannot replicated the problem on a small scale.
The steps to build these projects are:
mvn install ui-parent
mvn install ui
mvn package deployable
mvn package deployable2
deploy the war files in deployable, deployable2 to tomcat 6.0
Steps to reproduce:
1. click ok button to get to the tabs page
2. click to change tabs a couple of times and then hit the back button
3. serialization exception is supposed to occur but I couldnt get it to happen with these projects. there must be some other interaction that is not captured by this example.
> LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: WICKET-3503
> URL: https://issues.apache.org/jira/browse/WICKET-3503
> Project: Wicket
> Issue Type: Bug
> Affects Versions: 1.4.15
> Environment: wicket 1.4.15, spring 3.0
> Reporter: bf
> Assignee: Martin Grigorov
> Labels: spring
> Attachments: wicket-bug.zip
>
>
> LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)
> I believe it is a problem because my base WebApplication class is in a jar rather than the web application classes directory. Example
> ProjectA
> com.bf.app
> ProjectApplication extends MyBaseWebApplication
> com.bf.bean
> @Component("myBean")
> MySpringBean
> @Autowired
> private MyCommonBean;
> com.bf.page
> MyWicketPage with @SpringBean
> pom.xml depends on ProjectB
> Project B
> com.bf.app
> MyBaseWebApplication extends WebApplication
> com.bf.bean
> @Service("myCommonBean")
> MyCommonBean
> ERROR - RequestCycle - Could not deserialize object using `org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory` object factory
> java.lang.RuntimeException: Could not deserialize object using `org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory` object factory
> at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:435)
> at org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:234)
> at org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:735)
> at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:310)
> at org.apache.wicket.Session.getPage(Session.java:774)
> at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:458)
> at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
> at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
> at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
> 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:233)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
> at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)
> at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.io.InvalidClassException: com.bf.MySpringBean; could not resolve class [com.bf.MySpringBean] when deserializing proxy
> at org.apache.wicket.proxy.LazyInitProxyFactory$ProxyReplacement.readResolve(LazyInitProxyFactory.java:236)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
> at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:413)
> ... 23 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira