I have encountered the following serious issue:

My application consists of one WebPage which has an AjaxTabbedPanel. Each
tab has an associated panel which includes several menu items (links) which
can be selected. This works well.
However, if the user selects the back-button (once back, then once forward)
they can come back to the page with a different tab displayed than the one
selected before the back-button was used. If a menu link is then clicked on,
an exception is thrown. This appears to be because the Wicket on the server
is now out of synch with the html displayed. Wicket thinks a different panel
is selected than the one the user sees now.

This appears to be a fundamental Wicket problem/issue - apart from disabling
the back button, what are the available approaches?

Here is the stacktrace:
WicketMessage: org.apache.wicket.WicketRuntimeException: component
tabs:panel:subItem_account_balance_summary not found on page
com.drf.hapoalim.gui.menus.TabsDefinitionPage[id = 8], listener interface =
[RequestListenerInterface name=IBehaviorListener, method=public abstract
void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
Root cause:
org.apache.wicket.WicketRuntimeException: component
tabs:panel:subItem_account_balance_summary not found on page
com.drf.hapoalim.gui.menus.TabsDefinitionPage[id = 8], listener interface =
[RequestListenerInterface name=IBehaviorListener, method=public abstract
void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
     at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:426)

    
at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:471)

    
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:1428)
     at
org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
    
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
   
 
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
com.springsource.insight.collection.tcserver.request.HttpRequestOperationCollectionValve.invoke(HttpRequestOperationCollectionValve.java:60)

    
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.Http11Processor.process(Http11Processor.java:849)
    
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

    
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:379)

    
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    
at java.lang.Thread.run(Thread.java:637)
Complete stack:
org.apache.wicket.protocol.http.request.InvalidUrlException:
org.apache.wicket.WicketRuntimeException: component
tabs:panel:subItem_account_balance_summary not found on page
com.drf.hapoalim.gui.menus.TabsDefinitionPage[id = 8], listener interface =
[RequestListenerInterface name=IBehaviorListener, method=public abstract
void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
     at
org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262)

    
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
     at
org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
     at
org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
     at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)

-- 
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/back-button-causes-Wicket-state-and-page-displayed-to-be-out-of-synch-tp3006971p3006971.html
Sent from the Users forum mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to