Using the first one, the event gets fired and looking at the phase listener, all 6 phases are processed.
Using the second example with both menus and firing an event on the first menu, application invoke and model update phase aren't executed.
The second menu works fine

Only happens after the bean is new - using it on a already created session bean, works. Only after the first invoking of the view this happens.

I don't see any cause why the first event should not process phase 4 and 5 ( like it does when only one menu is used ), so imho it's a bug.

Mike Kienenberger
added a comment - 14/Jul/06 07:18 You've set the selectOne to immediate=true.
This short-circuits the phases by definition, executing no validation, updateModel, or invokeApplication phase.
So yes, it's working just as expected.

...
The only data available on a non-immediate component is what is fetched with component.getSubmittedValue(). Also, trying to change any backing bean value or component value is likely to be overwritten when the non-immediate value goes through validation and update model. And if any non-immediate component fails validation, then no backing bean updates will be performed.

On the other hand, any UIInput component marked immediate will already be validated before the action. If the validation failed for an immediate component, then the immediate action will not be executed, and no validation or model updates will occur for non-immediate components.
...

And if you read carefully - its only on the first event, the others do fine - with this "missing phases" for the first one. If you are right, than it should never behave so, that for all events after the first it works with these missing phases, than it would be also a bug.

And - you can delete the immidiate or set it to false. -> Bug is still there - so its not immediate="true" related.

Torsten Krah
added a comment - 14/Jul/06 11:05 Yo are wrong.
Look at http://wiki.apache.org/myfaces/How_The_Immediate_Attribute_Works:
Their you can read:
...
The only data available on a non-immediate component is what is fetched with component.getSubmittedValue(). Also, trying to change any backing bean value or component value is likely to be overwritten when the non-immediate value goes through validation and update model. And if any non-immediate component fails validation, then no backing bean updates will be performed.
On the other hand, any UIInput component marked immediate will already be validated before the action. If the validation failed for an immediate component, then the immediate action will not be executed, and no validation or model updates will occur for non-immediate components.
...
And if you read carefully - its only on the first event, the others do fine - with this "missing phases" for the first one. If you are right, than it should never behave so, that for all events after the first it works with these missing phases, than it would be also a bug.
And - you can delete the immidiate or set it to false. -> Bug is still there - so its not immediate="true" related.
Please reopen!
kind regards
Torsten

For the first event at test2.faces, the validation phase fails and update + application phase arent executed, which is right if validation phase is failing.
The validation failed - because, i don't know - thats what i have to find out, but so this bug is invalid, thx for help, i'll report why it fails for the first time.

Torsten Krah
added a comment - 20/Jul/06 17:09 Got some interesting news - found facestraces project and attatched it.
For the first event at test2.faces, the validation phase fails and update + application phase arent executed, which is right if validation phase is failing.
The validation failed - because, i don't know - thats what i have to find out, but so this bug is invalid, thx for help, i'll report why it fails for the first time.
kind regards
Torsten