ICEfaces
  1. ICEfaces
  2. ICE-10700

ace:growlMessages infinite display with interval Ajax Push

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 4.0
    • Fix Version/s: 4.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Any, testing with trunk ACE Auction sample (toggle org.icefaces.demo.auction.test.TestFlags.TEST_GROWL_MESSAGES to "true")

      Description

      When ace:growlMessages is used to display FacesMessages it doesn't clear/hide properly if a new response is pushed from the server before the "displayDuration" is done.

      Using:
      <ace:growlMessages closeAll="false" displayDuration="2000" position="bottom-right" globalOnly="true" maxVisibleMessages="5"/>

      On a page with an interval Ajax Push of 1 second the growlMessages just display/half-fade infinitely.

      If the "redisplay" attribute is set to "true" on ace:growlMessages in this case they sometimes don't appear (likely if the message happens to be the same time as a push) or close prematurely.

        Activity

        Hide
        Mircea Toma added a comment - - edited

        The repeated rendering of the messages is caused by the message persistence feature introduced in ICE-5750. ICEfaces will keep a message that was added until a full page load or a postack with execute=@all is issued. This in effect forces ace:growlMessages to re-render the message for each post-back including the ones triggered by a push notification.

        When displayDuration attrbiute is defined the clearing of the messages occur only on the client side. Maybe we should modify the component to stop render the messages after the defined delay has elapsed?!

        Show
        Mircea Toma added a comment - - edited The repeated rendering of the messages is caused by the message persistence feature introduced in ICE-5750 . ICEfaces will keep a message that was added until a full page load or a postack with execute=@all is issued. This in effect forces ace:growlMessages to re-render the message for each post-back including the ones triggered by a push notification. When displayDuration attrbiute is defined the clearing of the messages occur only on the client side. Maybe we should modify the component to stop render the messages after the defined delay has elapsed?!
        Hide
        Mircea Toma added a comment -

        This issue cannot be fixed at the core level. The message propagation through JSF lifecycles are necessary in ICEfaces to avoid their wipe-out during posrt-backs.

        In this case the application might need to be modified so that messages are removed from FacesContext after an interval equal to the one defined in ace:growlMessages displayDuration="***".

        Show
        Mircea Toma added a comment - This issue cannot be fixed at the core level. The message propagation through JSF lifecycles are necessary in ICEfaces to avoid their wipe-out during posrt-backs. In this case the application might need to be modified so that messages are removed from FacesContext after an interval equal to the one defined in ace:growlMessages displayDuration="***" .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Carlo Guglielmin
          • Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: