Ed Burns wrote:
>Fix for part one.
>
>Issue: jsf-spec11
>
>This change bundle modifies the javadoc for ViewHandler.restoreView() to
>clarify what should happen in the initial request to
>ViewHandler.restoreView().
>
>SECTION: API Changes
>
>M jsf-api/src/javax/faces/application/ViewHandler.java
>
>+ * If this is an
>+ * initial request to the faces system, this method must return
>+ * null.
>
>SECTION: RI changes
>
>M jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java
>
>- implement the above spec change. Note that the systest called
> com.sun.faces.pathtest.PathTest exercises this code.
>
>SECTION: API diffs
>
>Index: jsf-api/src/javax/faces/application/ViewHandler.java
>===================================================================
>RCS file:
>/cvs/javaserverfaces-sources/jsf-api/src/javax/faces/application/ViewHandler.java,v
>retrieving revision 1.39
>diff -u -r1.39 ViewHandler.java
>--- jsf-api/src/javax/faces/application/ViewHandler.java 5 Apr 2004 18:25:59
>-0000 1.39
>+++ jsf-api/src/javax/faces/application/ViewHandler.java 5 Nov 2004 15:50:24 -0000
>@@ -172,10 +172,12 @@
> /**
> * <p>Perform whatever actions are required to restore the view
> * associated with the specified {_at_link FacesContext} and
>- * <code>viewId</code>. It may delegate to the <code>restoreView</code>
>- * of the associated {_at_link StateManager} to do the actual work of
>- * restoring the view. If there is no available state for the
>- * specified <code>viewId</code>, return <code>null</code>.</p>
>+ * <code>viewId</code>. It may delegate to the
>+ * <code>restoreView</code> of the associated {_at_link StateManager}
>+ * to do the actual work of restoring the view. If this is an
>+ * initial request to the faces system, this method must return
>+ * null. If there is no available state for the specified
>
>
Minor nit, but wrap null in the line above with <code></code>.
>+ * <code>viewId</code>, return <code>null</code>.</p>
> *
> * @param context {_at_link FacesContext} for the current request
> * @param viewId the view identifier for the current request
>
>SECTION: RI diffs
>
>Index: jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java
>===================================================================
>RCS file:
>/cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java,v
>retrieving revision 1.45
>diff -u -r1.45 ViewHandlerImpl.java
>--- jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java 5 Aug 2004
>20:02:19 -0000 1.45
>+++ jsf-ri/src/com/sun/faces/application/ViewHandlerImpl.java 5 Nov 2004
>15:50:26 -0000
>@@ -204,7 +204,7 @@
> viewId = convertViewId(context, viewId);
> }
>
>- // maping could be null if a non-faces request triggered
>+ // mapping could be null if a non-faces request triggered
> // this response.
> if (extContext.getRequestPathInfo() == null && mapping != null &&
> isPrefixMapped(mapping)) {
>@@ -220,14 +220,19 @@
> throw new FacesException(ioe);
> }
> } else {
>- // this is necessary to allow decorated impls.
>- ViewHandler outerViewHandler =
>- context.getApplication().getViewHandler();
>- String renderKitId =
>- outerViewHandler.calculateRenderKitId(context);
>- viewRoot = Util.getStateManager(context).restoreView(context,
>- viewId,
>- renderKitId);
>+ // only try to restore the view if this is not an initial
>+ // request
>+ if (!extContext.getRequestParameterMap().isEmpty()) {
>+ // this is necessary to allow decorated impls.
>+ ViewHandler outerViewHandler =
>+ context.getApplication().getViewHandler();
>+ String renderKitId =
>+ outerViewHandler.calculateRenderKitId(context);
>+ viewRoot =
>+ Util.getStateManager(context).restoreView(context,
>+ viewId,
>+ renderKitId);
>+ }
> }
>
> return viewRoot;
>
>
r=rlubke
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_javaserverfaces.dev.java.net
For additional commands, e-mail: dev-help_at_javaserverfaces.dev.java.net