On 3/15/08, Matej Knopp <[EMAIL PROTECTED]> wrote: > Your page implementing Externalizable breaks wicket. Wicket relies of > Page#writeReplace, writeObject, readObject being called. Are you sure > you're no seing any stacktrace? >
Ok, I think I'm getting somewhere with this. I changed my exploration code a bit. Here's my HomePage class (sorry for the verbose email, but I'm trying to understand this better): public class HomePage extends WebPage { private static final long serialVersionUID = 1L; private static final Logger log = LoggerFactory.getLogger(HomePage.class); private int counter; /** * Constructor that is invoked when page is invoked without a session. * * @param parameters Page parameters */ public HomePage( final PageParameters parameters ) { // Add the simplest type of label add(new Label("message", new LoadableDetachableModel() { protected Object load() { return "I've been called " + counter++ + " times."; } })); add(new Link("refreshLink") { public void onClick() { log.info("I'm being called on object with identity " + System.identityHashCode(HomePage.this)); setResponsePage(HomePage.this); } }); } protected Object writeReplace() throws ObjectStreamException { final Object replacement = super.writeReplace(); log.info("I'm (identity " + System.identityHashCode(this) + ") being write replaced by object " + replacement); return replacement; } } And, here's the HomePage.html file: <html> <head> <title>Wicket Quickstart Archetype Homepage</title> </head> <body> <strong>Wicket Quickstart Archetype Homepage</strong> <br/><br/> <span wicket:id="message">message will be here</span> <p> Click <a href="." wicket:id="refreshLink">here</a> to refresh me! </p> </body> </html> Now, I see the expected behavior in IE7, but not in Firefox. When I hit the back button in IE7, the page is actually refreshed. When I hit the back button in Firefox, it isn't. Does the page completely have to refresh (when hitting "back") to get the functionality to work properly? I would think that the link URL would tell you enough to go get the proper version of the page. What I expect to happen is that when you hit back and click the link, it should display "I have been called 1 times." Am I understanding what's supposed to be going on correctly? Here's what happens with IE7: 1. View the HomePage (counter == 0) INFO - HomePage - I'm (identity 8940240) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0] 2. Click the link (counter == 1) INFO - HomePage - I'm being called on object with identity 8940240 INFO - HomePage - I'm (identity 8940240) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0] 3. Hit the back button (counter == 0) INFO - HomePage - I'm (identity 4113761) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 1, version = 0] 4. Click the link again (counter == 1) INFO - HomePage - I'm being called on object with identity 4113761 INFO - HomePage - I'm (identity 4113761) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 1, version = 0] And, here's what happens with Firefox: 1. View the HomePage (counter == 0) INFO - HomePage - I'm (identity 5068149) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0] 2. Click the link (counter == 1) INFO - HomePage - I'm being called on object with identity 5068149 INFO - HomePage - I'm (identity 5068149) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0] 3. Hit the back button (counter == 0) *** No Output! *** 4. Click the link again (counter == 2) INFO - HomePage - I'm being called on object with identity 5068149 INFO - HomePage - I'm (identity 5068149) being write replaced by object [Page class = com.carmanconsulting.wicket.demo.HomePage, id = 0, version = 0] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]