Details
-
Type: Bug
-
Status: Closed
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: 1.8.2
-
Fix Version/s: 1.8.2-EE-GA_P01, 1.8.3
-
Component/s: Framework
-
Labels:None
-
Environment:All
Description
This is a follow-on issue related to ICE-1900.
Neil Griffin added a comment - 28/Nov/09 08:39 AM
The new ICEfaces RequestStateManagerDelegate.clearMessages(FacesContext fc, String clientID) method is only working for messages associated with a component. The "FacesMessage(s) have been enqueued" annoyance is still happening for GLOBAL messages (where clientID == null).
Request that the "if" condition in the clearMessages method be changed to the following, so that it clears out GLOBAL messages too:
public static void clearMessages(FacesContext fc, String clientID) {
// if (!detected || fc == null || clientID == null) {
if (!detected || fc == null) {
return;
}
Set pendingMessageIds = getPendingMessageIds(fc);
if (pendingMessageIds != null && !pendingMessageIds.isEmpty()) {
pendingMessageIds.remove(clientID);
}
}
Neil Griffin added a comment - 28/Nov/09 08:39 AM
The new ICEfaces RequestStateManagerDelegate.clearMessages(FacesContext fc, String clientID) method is only working for messages associated with a component. The "FacesMessage(s) have been enqueued" annoyance is still happening for GLOBAL messages (where clientID == null).
Request that the "if" condition in the clearMessages method be changed to the following, so that it clears out GLOBAL messages too:
public static void clearMessages(FacesContext fc, String clientID) {
// if (!detected || fc == null || clientID == null) {
if (!detected || fc == null) {
return;
}
Set pendingMessageIds = getPendingMessageIds(fc);
if (pendingMessageIds != null && !pendingMessageIds.isEmpty()) {
pendingMessageIds.remove(clientID);
}
}
I've removed the extra check for clientIDs that are null so that global messages will also be cleared. Resolving as fixed.