Uploaded image for project: 'MyFaces Commons'
  1. MyFaces Commons
  2. MFCOMMONS-27

CLONE - Its not possible to change the summary/ detail message of a ParametrizableFacesMessage

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0.1
    • 1.0.2
    • myfaces-commons-utils
    • None

    Description

      We are using a PhaseListener in the render response phase to change the summary message of a FacesMessage

      public void beforePhase(PhaseEvent phaseEvent) {
         ...
        Iterator componentMessages = facesContext.getMessages(clientId);
      
         while (componentMessages.hasNext()) {
           FacesMessage message = (FacesMessage)componentMessages.next();
           StringBuilder builder = new StringBuilder();
           builder.append(label);
           builder.append(message.getSummary());
           message.setSummary(builder.toString());
        }
      }
      

      The problem is that since MyFaces 1.1.8 a ParametrizableFacesMessage is used for required messages. While doing a getSummary() the _evaluatedSummary is evaluated once, so effectively you can not change the _evaluatedSummary after one call to getSummary().

      My questions:
      1. Is this desired behaviour?
      2. In MyFaces 1.1.7 a FacesMessage was used instead of a ParametrizableFacesMessage, is there a configurable way to runtime use a FacesMessage instead of a ParametrizableFacesMessage?
      3. I suppose another workaround would be to add a label argument to each component which will be evaluated by the ParametrizableFacesMessage, is there any documentation how this functionality is intended to work?

      Attachments

        Issue Links

          Activity

            People

              lu4242 Leonardo Uribe
              meursj Jerry Meurs
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: