[richfaces-issues] [JBoss JIRA] (RF-13592) a4j:push doesn't work after rendering

Igor Bolshakov (JIRA) issues at jboss.org
Mon Mar 31 08:16:14 EDT 2014


Igor Bolshakov created RF-13592:
-----------------------------------

             Summary: a4j:push doesn't work after rendering
                 Key: RF-13592
                 URL: https://issues.jboss.org/browse/RF-13592
             Project: RichFaces
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: component-push/poll
    Affects Versions: 4.3.5
         Environment: JBoss EAP 6.2
Browser: Chrome 33.0.1750.154 and IE 8.0.7601.17514
JSF 2.19, Richfaces 4.3.5
            Reporter: Igor Bolshakov
            Priority: Critical
         Attachments: a4j.log, localhost.har, screenshot.png, web.xml

I use {{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 my simple example I set alert to notify about recieved message (see attached screenshot).

View xhtml code:
{code:xml}<?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>{code}

Backing bean class:
{code}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");
    }

}{code}

Configuration in web.xml (see attachment).

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

For more details I saved a4j:log output in a4j.log file.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the richfaces-issues mailing list