You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Tzvetanov Grigorov (Jira)" <ji...@apache.org> on 2020/04/20 21:07:00 UTC

[jira] [Commented] (WICKET-6765) WS broadcast of ClosedMessage rewrites touchedPages by its single page

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

Martin Tzvetanov Grigorov commented on WICKET-6765:
---------------------------------------------------

PLEASE use https://wicket.apache.org/start/quickstart.html to create demo applications! 
It saves us a LOT of time to debug them.

I do not understand the problem. Clicking on all types of links behave the same way here. Please explain what exactly is broken. What steps I need to follow to see the problem. What is the expected behavior that you believe is correct ?

Maybe you can use org.apache.wicket.protocol.ws.WebSocketSettings#setNotifyOnCloseEvent(Function) to decide whether onClose() should be called or not ?

VoidPageManagerProvider is not part of Wicket and we cannot guarantee that every use case will work with it!

> WS broadcast of ClosedMessage rewrites touchedPages by its single page
> ----------------------------------------------------------------------
>
>                 Key: WICKET-6765
>                 URL: https://issues.apache.org/jira/browse/WICKET-6765
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-native-websocket
>    Affects Versions: 7.7.0, 8.7.0
>         Environment: Java 8, Tomcat 9.0.27, Firefox 75.0
>            Reporter: Jan Cerny
>            Assignee: Martin Tzvetanov Grigorov
>            Priority: Minor
>         Attachments: wicket8-redirect-web-socket-on-close-example.zip
>
>
> That causes a lost of instances of newly touched pages (within PageStoreManager). For quite specific scenario that could have *visible* impact.
> *Conditions* to be fulfilled to see effect:
>  # calling setResponsePage(new NewResponsePage(customParams)) within AjaxLink (Link works)
>  ** this instance of passed page is not used for rendering (customParams are lost) - page is overridden by AbstractWebSocketProcessor.onClose() - within PersistentRequestAdapter.storeTouchedPages()
>  # RenderStrategy.{color:#660e7a}REDIRECT_TO_RENDER{color} must be applied
>  ** otherwise it is rendered before AbstractWebSocketProcessor.onClose()
>  # VoidPageManagerProvider must be used - setPageManagerProvider({color:#000080}new {color}VoidPageManagerProvider({color:#000080}this{color}));
>  ** otherwise it is saved and loaded within PageManager not only in session
> I'm attaching *test application* with example of losing page instance (and passed arguments). Important lines marked {color:#FF0000}NOT WORKING{color} in java and html files.
>  



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