a4j:push doesn't work after rendering

Solution Verified - Updated -

Issue

  • Using rendered attribute to start/stop a4j:push component in example below. After rendering of a4j:push element the handling of incoming push messages is broken. In the below example I set alert to notify about recieved message (see attached screenshot).

<?xml version="1.0" encoding="ISO-8859-1"?> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:a4j="http://richfaces.org/a4j" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:form> <a4j:outputPanel id="push-panel"> <a4j:push address="TEST_ADDRESS" ondataavailable="alert('event.rf.data=' + event.rf.data)" rendered="#{testBean.enabled}"/> </a4j:outputPanel> <a4j:commandButton id="startBtn" value="Start Push" action="#{testBean.startPush}" render="push-panel"/> <a4j:commandButton id="stopBtn" value="Stop Push" action="#{testBean.stopPush}" render="push-panel"/> <a4j:commandButton id="sendMessage" value="Send Message" action="#{testBean.sendMessage}"/> </h:form> </ui:composition>

Backing bean class:

public class TestBean {
    private boolean enabled = false;

    public boolean isEnabled() {
        return enabled;
    }

    public void startPush() {
        enabled = true;
    }

    public void stopPush() {
        enabled = false;
    }

    public void sendMessage() throws MessageException {
        TopicsContext.lookup().publish(new TopicKey("TEST_ADDRESS"), "Hello World");
    }

}

Scenario:
1) Open page
2) Click "Start Push" button
3) Click "Send Message" button
4) Alert "event.rf.data=Hello World" is shown
5) Click "Stop Push" button
6) Polling is closed
7) Click "Start Push" button
8) Polling is started
9) Click "Send Message" button
10) Message is recieved
11) No alert, no javascript error

Environment

  • Red Hat JBoss Web Framework Kit (WFK)
    • 2.5

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content