I set com.sun.faces.clientStateTimeout to 30 (sec.) and session-timeout to 1 (min.). Then, I start my application and wait a few minutes and try to do some action on my application so that the lifecycle is invoked again. Such trial shows that:
1) ViewExpiredException is not thrown.
2) When javax.faces.STATE_SAVING_METHOD to "client" view handler's restoreView method returns non-null object while null is returned when javax.faces.STATE_SAVING_METHOD is set to "server".
This is somehow misleading if I try to catch time-out with client state saving method (the workaround for server state saving method is wrapping the view handler, and testing whether restoreView method returns null).