You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2011/05/05 19:38:45 UTC

svn commit: r1099889 - /myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java

Author: bommel
Date: Thu May  5 17:38:44 2011
New Revision: 1099889

URL: http://svn.apache.org/viewvc?rev=1099889&view=rev
Log:
(TOBAGO-996) NonFacesRequestServlet doesn't work proper with JSF 1.2

Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java?rev=1099889&r1=1099888&r2=1099889&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/servlet/NonFacesRequestServlet.java Thu May  5 17:38:44 2011
@@ -43,26 +43,13 @@ public abstract class NonFacesRequestSer
 
   @Override
   protected void service(HttpServletRequest request, HttpServletResponse response)
-      throws ServletException,
-      IOException {
+      throws ServletException, IOException {
 
-    LifecycleFactory lFactory = (LifecycleFactory)
-        FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
-    Lifecycle lifecycle =
-        lFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
-    FacesContextFactory fcFactory = (FacesContextFactory)
-        FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
-    FacesContext facesContext =
-        fcFactory.getFacesContext(getServletContext(), request, response, lifecycle);
+    LifecycleFactory lFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
+    Lifecycle lifecycle = lFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
+    FacesContextFactory fcFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
+    FacesContext facesContext = fcFactory.getFacesContext(getServletContext(), request, response, lifecycle);
     try {
-      Application application = facesContext.getApplication();
-      ViewHandler viewHandler = application.getViewHandler();
-      String viewId = getFromViewId();
-      UIViewRoot view = viewHandler.createView(facesContext, viewId);
-      facesContext.setViewRoot(view);
-
-//    ExternalContext externalContext = facesContext.getExternalContext();
-//    externalContext.getRequestMap().put("com.sun.faces.INVOCATION_PATH", "/faces");
 
       // invoke application
       String outcome = invokeApplication(facesContext);
@@ -73,8 +60,17 @@ public abstract class NonFacesRequestSer
       if (LOG.isDebugEnabled()) {
         LOG.debug("outcome = '" + outcome + "'");
       }
+      Application application = facesContext.getApplication();
       NavigationHandler navigationHandler = application.getNavigationHandler();
       navigationHandler.handleNavigation(facesContext, null, outcome);
+
+      if (facesContext.getViewRoot() == null) {
+        ViewHandler viewHandler = application.getViewHandler();
+        String viewId = getFromViewId();
+        UIViewRoot view = viewHandler.createView(facesContext, viewId);
+        facesContext.setViewRoot(view);
+      }
+
       lifecycle.render(facesContext);
     } finally {
       facesContext.release();