O usuário digita um valor inválido no campo inpFilterValue e clica no botão Salve, o que vai disparar a validação e a mensagem de validação será exibida.
Então o usuário clica no botão Cancelar para descartar as alterações, o comportamento desejado é que os valores voltem ao estado original (ou em branco no caso de inclusão).
Porém devido a validação previamente executada, o valor incorreto é mantido no campo que estava inválido.
Vejam que o botão Cancelar foi configurado para não processar outros componentes. Isto funciona, desde que o usuário não tenha clicado no botão salvar previamente.
<p:dataTable id="tblFilters"
value="#{targetBean.filterEditor.dataModel}"
var="filter">
<f:facet name="header">
<h:panelGroup>
<p:toolbar id="filtersToolbar">
<p:toolbarGroup align="left">
<p:commandButton id="btnAddNew" icon="ui-icon ui-icon-plus"
value="New"
disabled="#{targetBean.filterEditor.buttonDisabled['btnAdd']}"
action="#{targetBean.filterEditor.addNew}"
process="@form" update="@form" title="#{msg['action.add']}" />
<p:commandButton id="btnEdit" icon="ui-icon ui-icon-plus"
value="Edit"
disabled="#{targetBean.filterEditor.buttonDisabled['btnEdit']}"
action="#{targetBean.filterEditor.edit}"
process="@form" update="@form" title="#{msg['action.edit']}" />
<p:commandButton id="btnRemove" icon="ui-icon ui-icon-minus"
value="Remove"
disabled="#{targetBean.filterEditor.buttonDisabled['btnRemove']}"
action="#{targetBean.filterEditor.delete}"
process="@this" update="@form" title="#{msg['action.remove']}"
immediate="true">
</p:commandButton>
<p:commandButton id="btnSave" process="@form" update="@form"
value="Save"
disabled="#{targetBean.filterEditor.buttonDisabled['btnSave']}"
icon="ui-icon ui-icon-circle-check" title="Salvar"
action="#{targetBean.filterEditor.save}">
</p:commandButton>
<p:commandButton id="btnCancel" value="Cancel" process="@this"
update="@form" immediate="true"
disabled="#{targetBean.filterEditor.buttonDisabled['btnCancel']}"
icon="ui-icon ui-icon-circle-check" title="Cancelar"
action="#{targetBean.filterEditor.cancel}">
</p:commandButton>
</p:toolbarGroup>
</p:toolbar>
</h:panelGroup>
</f:facet>
<p:column style="width: 2.0em;">
<p:panelGrid columns="2">
<p:commandButton id="btnSelect" process="@this" update="@form"
disabled="#{targetBean.filterEditor.buttonDisabled['btnSelect']}"
style="width: 1.5em!important; height: 1.5em !important;"
icon="ui-icon ui-icon-pencil"
actionListener="#{targetBean.filterEditor.selectRow}">
<f:attribute name="selectedValue" value="#{filter}" />
</p:commandButton>
</p:panelGrid>
</p:column>
<p:column id="colFilterOperating"
headerText="#{msg['search.filterfield']}">
<p:selectOneMenu id="inpFilterOperating"
value="#{filter.operating}" effect="fade" style="width: 100%"
valueChangeListener="#{targetBean.filterEditor.onChangeOperating}"
validator="#{targetBean.filterEditor.validateOperating}"
required="true"
requiredMessage="Campo de preenchimento obrigatório não preenchido!"
disabled="#{filter.fieldState['operating'].disabled}">
<f:selectItem itemLabel="#{msg['action.select']}..." itemValue="" />
<f:selectItems
value="#{targetBean.filterEditor.availableFilters}" />
<p:ajax event="change" process="@this"
update="msgFilterOperating inpFilterValue msgFilterValue btnAddNew btnRemove btnSelect" />
<p:message id="msgFilterOperating" for="inpFilterOperating"
showSummary="true" showDetail="true" />
</p:selectOneMenu>
</p:column>
<p:column id="colFilterOperator"
headerText="#{msg['search.filtertype']}">
<p:selectOneMenu id="inpFilterOperator" value="#{filter.operator}"
effect="fade" style="width: 100%" converter="#{operatorConverter}"
valueChangeListener="#{targetBean.filterEditor.onChangeOperator}"
validator="#{targetBean.filterEditor.validateOperator}"
required="true"
requiredMessage="Campo de preenchimento obrigatório não preenchido!"
disabled="#{filter.fieldState['operator'].disabled}">
<f:selectItem itemLabel="#{msg['action.select']}..." itemValue="" />
<f:selectItems
value="#{targetBean.filterEditor.availableOperators}" />
<p:ajax event="change" process="@this"
update="msgFilterOperator btnAddNew btnRemove btnSelect" />
<p:message id="msgFilterOperator" for="inpFilterOperator"
showSummary="true" showDetail="true" />
</p:selectOneMenu>
</p:column>
<p:column id="colFilterValue"
headerText="#{msg['search.filtervalue']}">
<p:inputText id="inpFilterValue" value="#{filter.value}"
style="width: 100%;"
valueChangeListener="#{targetBean.filterEditor.onChangeValue}"
validator="#{targetBean.filterEditor.validateValue}"
required="true"
requiredMessage="Campo de preenchimento obrigatório não preenchido!"
disabled="#{filter.fieldState['value'].disabled}">
<p:message id="msgFilterValue" for="inpFilterValue"
showSummary="true" showDetail="true" />
</p:inputText>
</p:column>
</p:dataTable>