Hi list,

After upgrading to Wicket 1.2, wicket tests for my project don't work 
anymore. Testing a page that is initialized using a custom constructor 
causes a WicketRuntimeException:

wicket.WicketRuntimeException: Internal error cloning object. Make sure 
all dependent objects implement Serializable. Class: 
wicket.util.tester.DummyHomePage
   at 
wicket.protocol.http.HttpSessionStore.setAttribute(HttpSessionStore.java:62)
[... bits of stacktrace omitted for brevity ...]
Caused by: java.io.NotSerializableException: com.example.MyPageTest$1
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
        at 
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
[... rest of stacktrace omitted for brevity ...]


I created the initialized page with an anonymous ITestPageSource, as per 
the WicketTester javadocs.

Consider the following example code that causes the error:

MyPage.html:
- - - - - - - - - - - - - - - - - - - - - - - - - -
<html xmlns:wicket="http://wicket.sourceforge.net/";>
   <head><title>bla</title></head>
   <body>
     <h1><span wicket:id="title">(title)</span></h1>
   </body>
</html>
- - - - - - - - - - - - - - - - - - - - - - - - - -


MyPage.java:
- - - - - - - - - - - - - - - - - - - - - - - - - -
package com.example;

import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;

public class MyPage extends WebPage {

   public MyPage() {
     this("empty");
   }

   public MyPage(String title) {
     add(new Label("title",title));
   }
}
- - - - - - - - - - - - - - - - - - - - - - - - - -


and finally, MyPageTest.java:
- - - - - - - - - - - - - - - - - - - - - - - - - -
package com.example;

import junit.framework.TestCase;
import wicket.Page;
import wicket.util.tester.ITestPageSource;
import wicket.util.tester.WicketTester;

public class MyPageTest extends TestCase {

   public void testRenderMyPage() {
     WicketTester tester = new WicketTester();

     // the following statement throws the exception:
     tester.startPage(new ITestPageSource() {
       public Page getTestPage() {
         return new MyPage("hello world");
       }
     });
   }
}
- - - - - - - - - - - - - - - - - - - - - - - - - -

What's happening here? Most of my pages use custom constructors to 
initialize the page, and every test method that use these cause the 
error. What can I do about it?

cheers,
Gert


-- 
Gert Jan Verhoog
Func. Internet Integration
W http://www.func.nl
T +31 30 2109750
F +31 30 2109751


_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to