Bugs item #1519015, was opened at 2006-07-07 22:23 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684975&aid=1519015&group_id=119783
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: core Group: 1.2 Status: Open Resolution: None Priority: 5 Submitted By: Smitti (smitti) Assigned to: Nobody/Anonymous (nobody) Summary: Wicket redirects unexpected to expired page Initial Comment: Every few pages wicket redirects unexpected to expired page. During this the session remains active, it is possible to go to the home page without having to login again. This behavior is not deterministic (it happens on links to different pages), but it looks like it is related to how ajax requests are handled. The redirect comes from DefaultRequestTargetResolverStrategy, method resolveRenderedPage. This method tries to retrieve the page from the session, but the PageMap in the session does not contain it, so expired page is returned. This is reproducible in wicket 1.2 and 1.2.1rc1. To reproduce (in quickstart project) add to Index.html: // just to display that page is reloaded String pid = parameters.getString("pid"); add(new Label("page", "Page: " + String.valueOf(pid))); // a simple ajax call Model updateModel = new Model() { @Override public Object getObject(Component arg0) { return new Date().toString();} }; Label update = new Label("update", updateModel); update.setOutputMarkupId(true); update.add(new AjaxSelfUpdatingTimerBehavior(Duration.milliseconds(1000d))); // ** add(update); and add to Index.html <div wicket:id="page"></div> <div wicket:id="update"></div> <script type="text/javascript"> <!-- // small script to avoid clicking buttons function newPage() { var page = Math.floor(Math.random() * 100); window.location = 'http://localhost:8081/quickstart/app?pid=' + page; } setTimeout('newPage()', 1000); // ** //--> </script> Please set a breakpoint in DefaultRequestTargetResolverStrategy, method resolveRenderedPage on line: return new ExpiredPageClassRequestTarget(); It takes a few page reloads to hit the breakpoint. Without AjaxSelfUpdatingTimerBehavior, the breakpoint never gets hit. (**) - maybe it is relevant, the ajax update time and page reload time (script timer) are same. I also notice that getLock(RequestCycle) in AjaxRequestTarget is never called. Could this cause some synchronization problems? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=684975&aid=1519015&group_id=119783 Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Wicket-develop mailing list Wicket-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-develop