Jan Cerny created WICKET-6380:
---------------------------------

             Summary: AbstractWebSocketProcessor.onClose() rewrites possibly 
wider processed and stored touchedPages to only Page itself
                 Key: WICKET-6380
                 URL: https://issues.apache.org/jira/browse/WICKET-6380
             Project: Wicket
          Issue Type: Bug
          Components: wicket-native-websocket
    Affects Versions: 7.7.0, 8.0.0
         Environment: Java 8, Tomcat 8.5.6, Firefox 53.0.2, Wicket 7.7.0 (most 
probably 8.0.0 affected as well by seeing just code)
            Reporter: Jan Cerny
            Assignee: Martin Grigorov


*scenario:*
* When setResponsePage(new NewResponsePage(customParams)) is called e.g. within 
AjaxLink.onClick() on a Page
* and default RenderStrategy.REDIRECT_TO_BUFFER is used
* PersistentRequestAdapter.storeTouchedPages() stores (Page and 
NewResponsePage) to pageStore and as setSessionAttribute()
* unfortunatelly AbstractWebSocketProcessor.onClose() touch and stores only a 
Page (on the same session attribute)

*problem:*
A new request on NewResponsePage always instantiate NewResponsePage (once we 
using custom NoOpPageStore implements IPageStore)

*solutions:*
# restrict ourselves to default constructor with PageParams
#* BUT when trigerring AjaxLink.onClick() on NewResponsePage newly instantiated 
(button) component within Border could not be found (because of queueToBorder 
feature)
# use 1 + RenderStrategy.REDIRECT_TO_RENDER
#* solves the previous BUT
#* less performing (and a lot of code changes we wanna avoid)
# use DefaultPageManagerProvider
#* less performing (we wanna avoid)
# swallow onClose broadcast 
#* a bit hard with wicket-native-websocket-javax package
#* *could there be some support for that?* 
# *some other easier solution - any idea?*



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to