document web config params better and sync code
diff --git a/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java b/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
index 65e5f4f..bdfaf89 100755
--- a/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/application/jsp/JspStateManagerImpl.java
@@ -236,7 +236,7 @@
         {
             Integer serverStateId = getServerStateId((Object[]) responseStateManager.getState(facesContext, uiViewRoot.getViewId()));
 
-            Object[] stateObj = (Object[]) getSerializedViewFromServletSession(facesContext, uiViewRoot.getViewId(), serverStateId);
+            Object[] stateObj = (Object[])( (serverStateId == null)? null : getSerializedViewFromServletSession(facesContext, uiViewRoot.getViewId(), serverStateId) );
             if (stateObj == null)
             {
                  log.error("No serialized view found in server session!");
@@ -310,7 +310,7 @@
             //reconstruct tree structure from ServletSession
             Integer serverStateId = getServerStateId((Object[]) responseStateManager.getState(facesContext, viewId));
 
-            Object[] stateObj = (Object[]) getSerializedViewFromServletSession(facesContext, viewId, serverStateId);
+            Object[] stateObj = (Object[])( (serverStateId == null)? null : getSerializedViewFromServletSession(facesContext, viewId, serverStateId) );
             if (stateObj == null)
             {
                 if (log.isDebugEnabled()) log.debug("Exiting restoreTreeStructure - No serialized view found in server session!");
@@ -354,7 +354,7 @@
 
             Integer serverStateId = getServerStateId((Object[]) responseStateManager.getState(facesContext, viewId));
 
-            state = getSerializedViewFromServletSession(facesContext, viewId, serverStateId);
+            state = (serverStateId == null) ? null : getSerializedViewFromServletSession(facesContext, viewId, serverStateId);
         }
 
         UIViewRoot uiViewRoot = null;
diff --git a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
index 941efb6..9485a92 100755
--- a/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
+++ b/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlResponseStateManager.java
@@ -187,6 +187,14 @@
         Object[] savedState = (Object[]) StateUtils.reconstruct(
                 (String) encodedState, facesContext.getExternalContext());
 
+        if (savedState == null)
+        {
+            if (log.isTraceEnabled()) {
+                log.trace("No saved state");
+            }
+            return null;
+        }
+        
         String restoredViewId = (String) savedState[VIEWID_PARAM];
 
         if (restoredViewId == null) {