I added the getSession().setAttribute() into the page constructor. When I hit the page, I see two lines in the AppEngine logs. The first is for the URL I put in the browser (/portal/pages/Test), which indicates a 302 response to the browser and the log entry also contains the debug message that I included along with the setAttribute() line.
The next line in the logs is for URL /portal/pages/Test?1 and is a 200 response with the page content. Does that help? Chris On Thu, May 14, 2015 at 4:42 PM, Christopher Merrill < [email protected]> wrote: > I added that line, along with > Debug.log.out("the test attribute is: " + > getSession().getAttribute("test")); > in the onSubmit() method of the AjaxButton. > > If I DO NOT refresh the page before pressing the button, then it prints > the message with the date in the logs. > > If I do refresh the page, nothing...which I take to mean that the code > never runs. > > I'll try it in the constructor for the page. > > Chris > > > On Thu, May 14, 2015 at 4:35 PM, Martin Grigorov <[email protected]> > wrote: > >> OK, then also put the same line in some constructor that is invoked. >> >> Martin Grigorov >> Wicket Training and Consulting >> https://twitter.com/mtgrigorov >> >> On Thu, May 14, 2015 at 11:32 PM, Christopher Merrill < >> [email protected]> wrote: >> >> > I'll do that. It'll take a few minutes to deploy that back up to >> AppEngine. >> > >> > But I don't think that code will be executed - I feel pretty confident >> that >> > the event listeners are not being invoked. At least, my debug >> statements in >> > the event listener do not get into the AppEngine logs. >> > >> > Chris >> > >> > >> > On Thu, May 14, 2015 at 4:23 PM, Martin Grigorov <[email protected]> >> > wrote: >> > >> > > Can you try something else: >> > > in onClick() add code like: getSession.setAttribute("test", new >> Date()) >> > > >> > > Martin Grigorov >> > > Wicket Training and Consulting >> > > https://twitter.com/mtgrigorov >> > > >> > > On Thu, May 14, 2015 at 11:18 PM, Christopher Merrill < >> > > [email protected]> wrote: >> > > >> > > > Thanks for your help, Martin! >> > > > >> > > > I turned off page recreation by adding: >> > > > >> > > > getPageSettings().setRecreateMountedPagesAfterExpiry(false); >> > > > >> > > > to my Application.init() method. >> > > > >> > > > There is no change in the behavior, either locally or in AppEngine >> -- >> > > i.e. >> > > > no page expired errors. >> > > > >> > > > You can observe the behavior here: >> > > > http://1.wp-portal-staging.appspot.com/portal/pages/Test >> > > > >> > > > by visiting the page, refreshing it and then pressing a button >> (which >> > > will >> > > > do nothing if you refreshed). I posted the code for that page in >> > another >> > > > thread ("Model value change lost between AjaxButton.onSubmit() and >> > > > form.onSubmit()"), in case that helps. >> > > > >> > > > TIA! >> > > > Chris >> > > > >> > > > >> > > > >> > > > On Thu, May 14, 2015 at 3:43 PM, Martin Grigorov < >> [email protected] >> > > >> > > > wrote: >> > > > >> > > > > Hi, >> > > > > >> > > > > My guess is that there is some problem with the saving of the >> page in >> > > the >> > > > > backing stores. >> > > > > Try by disabling page recreation for expired pages, see >> > IPageSettings, >> > > > > If I'm right then you should start seeing PageExpiredPage after >> > > clicking >> > > > > the link. >> > > > > The next step is will be to find why the pages could not be >> stored. >> > > > > >> > > > > Martin Grigorov >> > > > > Wicket Training and Consulting >> > > > > https://twitter.com/mtgrigorov >> > > > > >> > > > > On Thu, May 14, 2015 at 9:40 PM, Christopher Merrill < >> > > > > [email protected]> wrote: >> > > > > >> > > > > > I'm seeing problems throughout our app where refreshing the page >> > > causes >> > > > > > other event listeners to then malfunction. These are trivially >> > simple >> > > > > > listeners, like: >> > > > > > >> > > > > > Link customer_link = new Link("org_link") >> > > > > > { >> > > > > > @Override >> > > > > > public void onClick() >> > > > > > { >> > > > > > setResponsePage(new >> > > > > > OrganizationAdministrationPage(getPageReference(), >> > > > > > _organization_key)); >> > > > > > } >> > > > > > >> > > > > > private static final long serialVersionUID = >> > > -6396556709778260098L; >> > > > > > }; >> > > > > > >> > > > > > >> > > > > > Instead of returning the response page, the browser receives a >> > > forward >> > > > > > (302) back to the same page instance...which of course means >> that >> > the >> > > > > link >> > > > > > appears to do nothing. >> > > > > > >> > > > > > I can only reproduce this behavior when the app is deployed to >> > > > AppEngine >> > > > > -- >> > > > > > it works fine running on my desktop. The problems started when >> we >> > > > > upgraded >> > > > > > the application to Wicket 6. I'm not implying this is a Wicket 6 >> > > > > > problem...in fact I assume we have done something that is >> causing >> > > this >> > > > > > malfunction. But since it worked under Wicket 5, I'm hoping >> someone >> > > > will >> > > > > > see a relationship between the symptoms and a change that we >> need >> > to >> > > > make >> > > > > > for compatibility with Wicket 6. >> > > > > > >> > > > > > Any hints or debugging ideas (since I can't step through the >> code >> > > > running >> > > > > > in AppEngine) would be greatly appreciated! >> > > > > > >> > > > > > Chris >> > > > > > >> > > > > >> > > > >> > > >> > >> > >
