[JBoss JIRA] (RF-12145) RF4.2: Render and Oncomplete attributes not evaluated after invokeApplication if command is not rendered anymore
by Michael Heinen (JIRA)
[ https://issues.jboss.org/browse/RF-12145?page=com.atlassian.jira.plugin.s... ]
Michael Heinen commented on RF-12145:
-------------------------------------
Thanks Lukáš!
> RF4.2: Render and Oncomplete attributes not evaluated after invokeApplication if command is not rendered anymore
> ----------------------------------------------------------------------------------------------------------------
>
> Key: RF-12145
> URL: https://issues.jboss.org/browse/RF-12145
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Assignee: Lukáš Fryč
> Fix For: 4.3.0.M3
>
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month
[JBoss JIRA] (RF-12429) Close HornetQ Threads properly [tomcat]
by Jiří Štefek (JIRA)
[ https://issues.jboss.org/browse/RF-12429?page=com.atlassian.jira.plugin.s... ]
Jiří Štefek updated RF-12429:
-----------------------------
Environment:
RichFaces 4.3.0-SNAPSHOT
Metamer 4.3.0-SNAPSHOT
Apache MyFaces (2.1.8, 2.1.10) or Mojarra (2.1.16)
Apache Tomcat 7.0.29, 7.0.32
OpenJDK Runtime Environment 1.6.0_24-b24 @ Linux, Java(TM) SE Runtime Environment 1.7.0_09-b05 @ Linux
Firefox 14, 17 @ Linux x86_64
was:
RichFaces 4.3.0-SNAPSHOT
Metamer 4.3.0-SNAPSHOT
Apache MyFaces JSF-2.1 Core Impl 2.1.8 or Mojarra
Apache Tomcat 7.0.29
OpenJDK Runtime Environment 1.6.0_24-b24 @ Linux
Firefox 14.0.1 @ Linux x86_64
> Close HornetQ Threads properly [tomcat]
> ---------------------------------------
>
> Key: RF-12429
> URL: https://issues.jboss.org/browse/RF-12429
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 4.3.0.M1
> Environment: RichFaces 4.3.0-SNAPSHOT
> Metamer 4.3.0-SNAPSHOT
> Apache MyFaces (2.1.8, 2.1.10) or Mojarra (2.1.16)
> Apache Tomcat 7.0.29, 7.0.32
> OpenJDK Runtime Environment 1.6.0_24-b24 @ Linux, Java(TM) SE Runtime Environment 1.7.0_09-b05 @ Linux
> Firefox 14, 17 @ Linux x86_64
> Reporter: Jiří Štefek
> Assignee: Jiří Štefek
> Labels: hortnetq, tomcat
>
> The HornetQ Threads are not closed properly. This causes memory leaks, which can lead to test suite stuck.
> See [1] after each test class.
> {code}
> Aug 21, 2012 9:59:03 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
> SEVERE: The web application [/metamer] appears to have started a thread named [Thread-0 (HornetQ-client-factory-threads-1849147-2133832)] but has failed to stop it. This is very likely to create a memory leak.
> {code}
> In Myfaces(only) there are also problems with closing ThreadLocals
> {code}
> Aug 21, 2012 9:59:03 AM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
> SEVERE: The web application [/metamer] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@f659f0]) and a value of type [org.apache.myfaces.context.servlet.ServletExternalContextImpl] (value [org.apache.myfaces.context.servlet.ServletExternalContextImpl@18ad373]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
> {code}
> [1] http://hudson.qa.jboss.com/hudson/view/RF-4.0/job/richfaces-metamer-smoke...
--
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
13 years, 1 month
[JBoss JIRA] (RF-12725) Metamer: rich:placeholder & input and textarea: error status on submit, output not updated
by Jiří Štefek (JIRA)
[ https://issues.jboss.org/browse/RF-12725?page=com.atlassian.jira.plugin.s... ]
Jiří Štefek resolved RF-12725.
------------------------------
Assignee: Jiří Štefek (was: Lukáš Fryč)
Resolution: Rejected
Samples are fixed now.
> Metamer: rich:placeholder & input and textarea: error status on submit, output not updated
> ------------------------------------------------------------------------------------------
>
> Key: RF-12725
> URL: https://issues.jboss.org/browse/RF-12725
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input, component-misc
> Affects Versions: 4.3.0.CR1
> Environment: RichFaces 4.3.0.CR1
> Metamer 4.3.0.20130114-CR1
> JBoss Application Server: Weld Integration 7.1.1.Final
> JBoss AS 7.1.1.Final
> Java(TM) SE Runtime Environment 1.7.0_04-b20 @ Linux
> Chrome 23.0.1271.95 @ Linux i686
> Metamer:
> cfd26771e2c1d9e693fe6844055eba27 metamer-4.3.0.20130114-CR1-jbas71.war
> NOTE: it is working correctly with MyFaces
> Reporter: Ján Jamrich
> Assignee: Jiří Štefek
>
> Input and textarea examples using placeholder doesn't work correctly.
> When submit empty form, the Error status appears in Metamer.
> When submit non empty form, output values are not updated, and the Error status appears instead.
> But using MyFaces, textarea works correctly, and for input example no Error status, but output values are not update (but have to make sure that there is nothing wrong with outputs, since there are 3 inputs and just 2 outputs, which is a little bit confusing for me)
--
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
13 years, 1 month
[JBoss JIRA] (RF-12725) Metamer: rich:placeholder & input and textarea: error status on submit, output not updated
by Jiří Štefek (JIRA)
[ https://issues.jboss.org/browse/RF-12725?page=com.atlassian.jira.plugin.s... ]
Jiří Štefek commented on RF-12725:
----------------------------------
I don't think this is necessary, Brian.
My fault, I left the unnecessary outputs and command buttons there from template.
The outputs and the command buttons should be deleted. These 2 samples are only to test simple html elements of <input> and <textarea>, there is no need to bind their values to bean and to submit it, and the tests are actually not testing it. I'll correct it.
And the error is there, because of bug in JBoss AS, where submiting a form with unnamed input causes error. Works fine on Tomcat (both Mojarra and MyFaces).
> Metamer: rich:placeholder & input and textarea: error status on submit, output not updated
> ------------------------------------------------------------------------------------------
>
> Key: RF-12725
> URL: https://issues.jboss.org/browse/RF-12725
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input, component-misc
> Affects Versions: 4.3.0.CR1
> Environment: RichFaces 4.3.0.CR1
> Metamer 4.3.0.20130114-CR1
> JBoss Application Server: Weld Integration 7.1.1.Final
> JBoss AS 7.1.1.Final
> Java(TM) SE Runtime Environment 1.7.0_04-b20 @ Linux
> Chrome 23.0.1271.95 @ Linux i686
> Metamer:
> cfd26771e2c1d9e693fe6844055eba27 metamer-4.3.0.20130114-CR1-jbas71.war
> NOTE: it is working correctly with MyFaces
> Reporter: Ján Jamrich
> Assignee: Lukáš Fryč
>
> Input and textarea examples using placeholder doesn't work correctly.
> When submit empty form, the Error status appears in Metamer.
> When submit non empty form, output values are not updated, and the Error status appears instead.
> But using MyFaces, textarea works correctly, and for input example no Error status, but output values are not update (but have to make sure that there is nothing wrong with outputs, since there are 3 inputs and just 2 outputs, which is a little bit confusing for me)
--
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
13 years, 1 month
[JBoss JIRA] (RF-12730) Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12730?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč updated RF-12730:
----------------------------
Affects Version/s: 4.3.0.CR1
> Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
> --------------------------------------------------------------------------------------------------
>
> Key: RF-12730
> URL: https://issues.jboss.org/browse/RF-12730
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final, 4.3.0.CR1
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month
[JBoss JIRA] (RF-12730) Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12730?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč commented on RF-12730:
---------------------------------
I have cloned this issue from RF-12145.
We have addressed a fix for conditionally rendered subtree using {{rendered}} attribute,
however as Michael pointed out, the fix does not help when using {{<c:if test="..." />}}.
> Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
> --------------------------------------------------------------------------------------------------
>
> Key: RF-12730
> URL: https://issues.jboss.org/browse/RF-12730
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month
[JBoss JIRA] (RF-12730) Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12730?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč updated RF-12730:
----------------------------
Assignee: (was: Lukáš Fryč)
> Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
> --------------------------------------------------------------------------------------------------
>
> Key: RF-12730
> URL: https://issues.jboss.org/browse/RF-12730
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month
[JBoss JIRA] (RF-12730) Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12730?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč updated RF-12730:
----------------------------
Fix Version/s: (was: 4.3.0.M3)
> Render and Oncomplete attributes are not evaluated if command is in conditionally rendered subtree
> --------------------------------------------------------------------------------------------------
>
> Key: RF-12730
> URL: https://issues.jboss.org/browse/RF-12730
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Assignee: Lukáš Fryč
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month
[JBoss JIRA] (RF-12145) RF4.2: Render and Oncomplete attributes not evaluated after invokeApplication if command is not rendered anymore
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12145?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč resolved RF-12145.
-----------------------------
Resolution: Done
> RF4.2: Render and Oncomplete attributes not evaluated after invokeApplication if command is not rendered anymore
> ----------------------------------------------------------------------------------------------------------------
>
> Key: RF-12145
> URL: https://issues.jboss.org/browse/RF-12145
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core, core
> Affects Versions: 4.2.0.Final
> Environment: MyFaces 2.1.6 / Mojarra 2.1.7
> Tomcat 6.0.35 / 7.0.26
> Reporter: Michael Heinen
> Assignee: Lukáš Fryč
> Fix For: 4.3.0.M3
>
> Attachments: onc333.war, onc42.war, RF-12145.zip, zOnc333WithLibs.war, zOnc42New.war, zOnc42WithLibs.war
>
> Original Estimate: 3 hours
> Remaining Estimate: 3 hours
>
> Sample use case:
> The last page of a wizard contains a commandButton with an EL expressions in the oncomplete attribute and in the render attribute.
> This button renders an outer component in order to close the wizard. The button itself is not rendered anymore after clicking it.
> As a consequence the EL expressions of the oncomplete attribute and of the render attribute is not evaluated after the invocation of an actionListener.
> This worked well with richfaces 3.3.3, therefore it's a critical regression.
> I'll attach a sample webApp for richfaces 4.2 and for riochfaces 3.3.3
> Note that the render attribute of f:ajax is evaluated correctly.
> These attributes of the clicked command must be evaluated in phase render response in all cases.
> ----
> {code:title="OncController.java"}
> package com;
> import java.util.Map;
> import javax.faces.bean.ManagedBean;
> import javax.faces.bean.SessionScoped;
> import javax.faces.context.FacesContext;
> import javax.faces.event.ActionEvent;
> @ManagedBean(name = "OncController")
> @SessionScoped
> public class OncController
> {
> private boolean innerShown = true;
>
> private int calls = 0;
> public OncController()
> {
> }
> public boolean isInnerShown()
> {
> return innerShown;
> }
> public void setInnerShown(boolean aInnerShown)
> {
> innerShown = aInnerShown;
> }
>
> public void clear(final ActionEvent ae)
> {
> innerShown=true;
> calls=0;
> }
> public void doIt(final ActionEvent ae)
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> requestMap.put("key1", "alert('after actionListener');");
> requestMap.put("key2", "group2");
> calls++;
> }
> public String getOncomplete()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key1");
> if (value != null)
> {
> return value;
> }
> else
> {
> return "alert('before actionListener');";
> }
> }
> public String getRenderIdsRichfaces()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return ","+value;
> }
> return"";
> }
>
> public String getRenderIdsFAjax()
> {
> final Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext()
> .getRequestMap();
> final String value = (String) requestMap.get("key2");
> if (value != null)
> {
> return " " + value;
> }
> return"";
> }
>
> public int getCalls()
> {
> return calls;
> }
> }
> {code}
> {code:title="oncomplete.xhtml"}
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:a4j="http://richfaces.org/a4j"
> xmlns:rich="http://richfaces.org/rich"
> xmlns:c="http://java.sun.com/jsp/jstl/core">
> <ui:composition>
> <h:head><title>Oncomplete test</title></h:head>
> <h:body>
> <a4j:log mode="popup"/>
> <h:form id="myForm">
> Post button rendered:<h:selectBooleanCheckbox id="innerBool" value="#{OncController.innerShown}"/>
> <br/>
> <h:panelGroup id="outer">
> <c:if test="#{OncController.innerShown}">
> <a4j:commandButton value="RichFaces Post"
> actionListener="#{OncController.doIt}"
> render="outer,details#{OncController.renderIdsRichfaces}"
> oncomplete="#{OncController.oncomplete}"/>
> <h:commandButton value="fAJAX Post"
> actionListener="#{OncController.doIt}">
> <f:ajax render="outer details#{OncController.renderIdsFAjax}"
> execute="@form"/>
> </h:commandButton>
> </c:if>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="details">
> oncomplete: <h:outputText value="#{OncController.oncomplete}"/>
> </h:panelGroup>
> <br/><br/>
> <h:panelGroup id="group2">
> calls: <h:outputText value="#{OncController.calls}"/>
> </h:panelGroup>
> <br/><br/>
> <a4j:commandButton value="Clear"
> actionListener="#{OncController.clear}"
> render="myForm" />
> </h:form>
> </h:body>
> </ui:composition>
> </html>
> {code}
--
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
13 years, 1 month