if (_log.isDebugEnabled()) {
_log.debug("Can't restore view state : session expired");
}
} else {
synchronized (session) {
LRUMap viewStates = (LRUMap) externalContext.getSessionMap()
.get(VIEW_STATES_MAP);
if (null != viewStates) {
LRUMap logicalStates = (LRUMap) viewStates.get(viewId);
if (null != logicalStates) {
if (null != id) {
restoredState = (Object[]) logicalStates.get(id);
externalContext.getRequestMap().put(VIEW_SEQUENCE,
id);
if (null == restoredState) {
if (_log.isDebugEnabled()) {
_log
.debug("No saved view state found for a Id "
+ id
+ ". Restore last saved state");
}
restoredState = (Object[]) logicalStates
.get(logicalStates.lastKey());
}
} else {
if (_log.isDebugEnabled()) {
_log
.debug("No version Id for a saved view state in request. Restore last saved state");
}
restoredState = (Object[]) logicalStates
.get(logicalStates.lastKey());
}
} else if (_log.isDebugEnabled()) {
_log
.debug("Can't restore view state : no saved states for a ViewId "
+ viewId);