You shouldn't call action code in an attribute (property) accessor. Technically, that's known as a side-effect. In
JSF it's especially important, since the accessor may get invoked more than once and at unpredictable times.
If you desire a placid life, always make your getter functions read-only and your setters should update only data and not fire off actions of their own. Leave the heavy-duty logic to action processor methods.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.