[ 
https://issues.apache.org/jira/browse/ISIS-2530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17283570#comment-17283570
 ] 

Andi Huber edited comment on ISIS-2530 at 2/17/21, 9:17 AM:
------------------------------------------------------------

Martin Grigorov:
EntityPage is being opened by the user, then after X mins the session expires, 
but the user credentials are stored and any interaction with the app 
transparently creates a new session and tries to continue like an expiration 
haven't happened at all.

then Wicket tries to execute the action (Link click in this case) and complains 
that the Component cannot be found on the current page

i.e. before the expiration the page being shown had a Component with path 
"theme:welcome" but after the re-creation there is no such component in the new 
page and Wicket fails ...
https://github.com/apache/wicket/blob/11dc8f94b93216bd72c61cd5ba94946a8f89af1c/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java#L46

by default Wicket will create a fresh instance of the page if there is an info 
of its type, i.e. EntityPage, in the url

if you do getPageSettings().setRecreateBookmarkablePagesAfterExpiry(false) at 
https://github.com/apache/isis/blob/9691c1e2344a3b260624823720cd69b519453c5f/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java#L210
 then Wicket will throw PageExpiredException instead of creating a fresh 
instance

and this code will kick-in 
https://github.com/apache/isis/blob/d14adde6b82c8c0c02d7195490cc99dc1faff199/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java#L251






was (Author: hobrom):
Martin Grigorov:
EntityPage is being opened by the user, then after X mins the session expires, 
but the user credentials are stored and any interaction with the app 
transparently creates a new session and tries to continue like an expiration 
haven't happened at all.

then Wicket tries to execute the action (Link click in this case) and complains 
that the Component cannot be found on the current page

i.e. before the expiration the page being shown had a Component with path 
"theme:welcome" but after the re-creation there is no such component in the new 
page and Wicket fails ...
https://github.com/apache/wicket/blob/11dc8f94b93216bd72c61cd5ba94946a8f89af1c/wicket-core/src/main/java/org/apache/wicket/settings/PageSettings.java#L46

by default Wicket will create a fresh instance of the page if there is an info 
of its type, i.e. EntityPage, in the url

if you do getPageSettings().setRecreateBookmarkablePagesAfterExpiry(false) at 
https://github.com/apache/isis/blob/9691c1e2344a3b260624823720cd69b519453c5f/viewe[…]/isis/viewer/wicket/viewer/wicketapp/IsisWicketApplication.java
 then Wicket will throw PageExpiredException instead of creating a fresh 
instance

and this code will kick-in 
https://github.com/apache/isis/blob/d14adde6b82c8c0c02d7195490cc99dc1faff199/viewe[…]is/viewer/wicket/viewer/integration/WebRequestCycleForIsis.java





> Wicket: switch session timeout policy to not recreate expired pages
> -------------------------------------------------------------------
>
>                 Key: ISIS-2530
>                 URL: https://issues.apache.org/jira/browse/ISIS-2530
>             Project: Isis
>          Issue Type: Improvement
>          Components: Isis Viewer Wicket
>            Reporter: Andi Huber
>            Assignee: Andi Huber
>            Priority: Minor
>             Fix For: 2.0.0-M5
>
>
> Martin Hesse: I came across this wicket error message I get when I click on a 
> link or a menu entry after a being "away from the keyboard" for a while, 
> saying "Unable to find component with id 'welcome' in [WebMarkupContainer 
> [Component id = theme]] Expected: 'theme:welcome'. Found with similar names: 
> ''"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to