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/04 08:51:36 UTC

[jira] Created: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

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


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

        

[jira] Updated: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "bf (JIRA)" <ji...@apache.org>.
     [ 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

        

[jira] Commented: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "bf (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13002924#comment-13002924 ] 

bf commented on WICKET-3503:
----------------------------

Hi Martin,
Thanks for looking at it so quickly.    I can try to put together a quickstart.    How do I do that?
The problem only occurred when it had a version of the current page and I hit the back button.
so when the wicket url was like http://tico.bfapps.appspot.com/?wicket:interface=:2:1:::
it had to have a second number after the first number and then i hit the back button
Let me know
Thanks



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

        

[jira] Resolved: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Vaynberg resolved WICKET-3503.
-----------------------------------

    Resolution: Fixed

i think its safe to mark this as fixed with the latest change

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

        

[jira] Commented: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13003027#comment-13003027 ] 

Igor Vaynberg commented on WICKET-3503:
---------------------------------------

committed

> 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

        

[jira] Assigned: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov reassigned WICKET-3503:
---------------------------------------

    Assignee: Martin Grigorov

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

        

[jira] Commented: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13002708#comment-13002708 ] 

Martin Grigorov commented on WICKET-3503:
-----------------------------------------

I changed locally LazyInitProxyFactory to:

-			Class<?> clazz;
-			try
+			final Class<?> clazz = WicketObjects.resolveClass(type);
+			if (clazz == null)
 			{
-				clazz = Class.forName(type);
-			}
-			catch (ClassNotFoundException e)
-			{
 				throw new InvalidClassException(type, "could not resolve class [" + type +
 					"] when deserializing proxy");

and all tests pass.

WicketObjects.resolveClass(type) uses DefaultClassResolver under the hood and it uses :

ClassLoader loader = Thread.currentThread().getContextClassLoader();
if (loader == null)
{
   loader = DefaultClassResolver.class.getClassLoader();
}
clazz = Class.forName(classname, false, loader);

So I believe the change is for good and will solve your problem.
The only thing that stops me to commit it is that I had similar modular application and we had no problems. The only difference was that the application uses Guice instead of Spring.


> 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
>              Labels: spring
>
> 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

        

[jira] [Updated] (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov updated WICKET-3503:
------------------------------------

    Fix Version/s: 1.5-RC3
                   1.4.17

> 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
>             Fix For: 1.4.17, 1.5-RC3
>
>         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

[jira] Commented: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13003024#comment-13003024 ] 

Martin Grigorov commented on WICKET-3503:
-----------------------------------------

Igor, if you mean the diff in my comment above then - it is not yet committed. The changelist is on my dev machine.
Either commit it or I'll do it tomorrow.

> 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

        

[jira] Commented: (WICKET-3503) LazyInitProxyFactory using Class.forName(clazz) rather than Thread.currentThread().getContextClassLoader().loadClass(type)

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13002494#comment-13002494 ] 

Martin Grigorov commented on WICKET-3503:
-----------------------------------------

Can you please create a quickstart application that reproduces the problem ?

> 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
>              Labels: spring
>
> 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