Hi, I'm having same problem...and I don't found a solution yet.
It is possible to avoid invocations of getters (isXXX as well) on the earlier phase only using JSF 1.2 "InvokeOnComponent" feature. As soon as RichFaces 3.1.2GA (as any other 3.1.x) requires to support JSF 1.1, all the component tree nodes are decoded in order to find the elements for processing.
Only RichFaces 3.2.0 that support only JSF 1.2 allows this.
I'm using RF 3.2.0. I've not idea how to use "InvokeOnComponent", but now I'm reading about it.
Sorry, I was not clear enough.
You do not have to use InvokeOnComponent by yourself. The framework (in our case - RichFaces) does it.
RichFaces 3.1.x did not use it due to support JSF 1.1
RichFaces 3.2.x uses it because does not support JSF 1.1
So, because InvokeOnComponent is not used. RichFaces 3.1.x walks thru the component tree and decodes all nodes in order to fine needed components to process. This is why the getters are invoked on the second JSF lifecycle phase.
RichFaces 3.2.0 does NOT walks thru the component tree, but invoke only required components using InvokeOnComponent feature. Therefore, the getters invoked only on the needed components
This is a difference between 3.1.x and 3.2.0. If you still have to use 3.1.x you need to expect the getters invoked and manage this by yourself.