PrimeFaces Ajax Listener não executado quando o atributo de processo é especificado para um componente diferente

Quando eu especificarprocess atributo dep:ajax tag, o ouvinte não é executado. Se eu omitir oprocess atributo, o listener é chamado como esperado.

Aqui está o snippet da vista:

<code><p:messages id="messages" />
<h:inputText id="inputToProcess" value="#{controller.inputToProcess}" />
<p:selectBooleanCheckbox id="testCheckbox" >
  <p:ajax event="change" process="inputToProcess"
    update="messages @this inputToUpdate"
    listener="#{controller.processChecked}" />
</p:selectBooleanCheckbox>
<h:inputText id="inputToUpdate" value="#{controller.inputToUpdate}" />
</code>

E controlador:

<code>@javax.faces.bean.ManagedBean
@javax.faces.bean.ViewScoped
public class Controller implements Serializable {
  private String inputToProcess;
  private String inputToUpdate;
  //getters and setters

  public void processChecked(javax.faces.AjaxBehaviorEvent e) {
    // doing some stuff here
  }
}
</code>

Eu anexei umphaseListener para uma visão comANY_PHASE PhaseIde aqui está o que eu observei.

Quando eu especificarprocess atributo, o valor doinputToProcess a entrada é definida com sucesso para o controlador durante a fase Atualizar Modelo (sem exceção). Então oInvoke Application eRender Response fases são executadas, mas nenhum ouvinte é chamado. Uma coisa que notei é que a caixa de seleção não está definida no final. Mas, não há erros de conversão ou validação, porque como eu disse oUpdate Model eInvoke Application fases são executadas.

Se eu omitirprocess atributo, aqui está o que eu vejo: o ouvinte é normalmente chamado durante oInvoke Application fase (desdeimmediate é falso por padrão) e, em seguida, `Render Response é executado. A caixa de seleção é configurada com sucesso.

Existe alguma explicação para esse tipo de comportamento?

questionAnswers(1)

yourAnswerToTheQuestion