Just a wild guess from my side:
In your button, you actually have defined the
updateattribute, but no
processattribute - the latter is not mandatory, but whenever you have validations in place (required / patterns), these validations take place on each ajax request and therefore could deny the action because the state of the form is not valid. This can be afaik circumvented by using
partialSubmit or by
processing only the inputs you need.
Also, you're just updating the dialog content in your
update- that means that although the variable you've changed is bound to different inputs or displays, the changed value will only be applied after a successful AJAX response to the elements you've defined in the
updateattribute - therefore even if the update succeeds, you won't see any update outside of the dialog.
For further reading:
Process - Primefaces AJAX Framework
PartialSubmit - Primefaces AJAX Framework
Selectors - Primefaces AJAX Framework
and maybe a better input field: SelectOneMenu - Primefaces Showcase