code: public void writeState(FacesContext context, Object state)
            throws IOException {
          if (null != state && state.getClass().isArray() &&
              state.getClass().getComponentType().equals(Object.class)) {
              Object stateArray[] = (Object[]) state;
              if (2 == stateArray.length) {
                  SerializedView view = new SerializedView(stateArray[0],
                                                           stateArray[1]);
                  writeState(context, view);
              }
          }
      }
docs: <p>Save the state represented in the specified state
  <code>Object</code> instance, in an implementation dependent
  manner.</p>
  <p/>
  <p>This method will typically simply delegate the actual
  writing to the <code>writeState()</code> method of the
  {@link ResponseStateManager} instance provided by the
  {@link RenderKit} being used to render this view.  This
  method assumes that the caller has positioned the
  {@link ResponseWriter} at the correct position for the
  saved state to be written.</p>
  <p/>
  <p>For backwards compatability with existing
  <code>StateManager</code> implementations, the default
  implementation of this method checks if the argument is an
  instance of <code>Object []</code> of length greater than or
  equal to two.  If so, it creates a <code>SerializedView</code>
  instance with the tree structure coming from element zero and
  the component state coming from element one and calls through to
  {@link
  #writeState(javax.faces.context.FacesContext,javax.faces.application.StateManager.SerializedView)}.
  If not, does nothing.</p>
  
  @param context {@link FacesContext} for the current request
  @param state   the Serializable state to be written,
  as returned by {@link #saveSerializedView}
  
  @since 1.2