[
https://issues.apache.org/jira/browse/WICKET-2705?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12920857#action_12920857
]
Igor Vaynberg commented on WICKET-2705:
---------------------------------------
a proper solution to this will look something like this:
feedback messages are stored in component's metadata with the components
add new support for persistent feedback messages - these are not cleaned up
after render
form components report their errors as persistent
form components clean their reported errors once validated
so form component workflow looks like this:
before validate - clear all reported errors
validate - reports persistent messages
onvalid - clear all reported errors
onerror - do nothing, messages stay until next validation or onvalid
> Feedback messages get cleaned up in AJAX request, thus never rendered and
> never visible to user
> -----------------------------------------------------------------------------------------------
>
> Key: WICKET-2705
> URL: https://issues.apache.org/jira/browse/WICKET-2705
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4.6
> Environment: Sun Glassfish Enterpriser Server 2.1
> Reporter: Jan Winkler
> Assignee: Igor Vaynberg
> Fix For: 1.6.0
>
> Attachments: feedbackbug.patch, feedbackbug.tgz, patch.txt
>
>
> Consider a page containing a form and an AJAXy component (as in an AJAX link
> or a panel with AjaxSelfUpdatingTimerBehavior). The form contains code, that
> makes its processing take relatively long time, even when validation fails
> (let's say we forgot to fill in a requred field). The form gets submitted,
> and while it's processing, the AJAX component triggers a request (AJAX link
> gets clicked, or AjaxSelfUpdatingTimerBehavior kicks in). While the AJAX
> request gets served, cleanupFeedbackMessages() is called, wiping all feedback
> messages found by WebSession.MESSAGES_FOR_COMPONENTS filter.
> WebSession.MESSAGES_FOR_COMPONENTS implementation (or its usage in
> cleanupFeedbackMessages()) is a little bit fishy, as it accept()s messages,
> that haven't been rendered.
> Will add testcase.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.