You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2019/07/03 10:46:09 UTC

[empire-db] branch master updated: EMPIREDB-288 provide handler for View Not Found in WebApplication

This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new 77c701f  EMPIREDB-288 provide handler for View Not Found in WebApplication
77c701f is described below

commit 77c701f6289ed27668df3fdd64b28f6972d8617f
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Wed Jul 3 12:45:55 2019 +0200

    EMPIREDB-288
    provide handler for View Not Found in WebApplication
---
 .../java/org/apache/empire/jsf2/app/WebApplication.java    | 14 ++++++++++++--
 .../org/apache/empire/jsf2/pages/PagePhaseListener.java    |  6 ++++--
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebApplication.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebApplication.java
index ccd5e7c..c09be7b 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebApplication.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/app/WebApplication.java
@@ -36,6 +36,7 @@ import javax.faces.component.UIComponent;
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
 import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
 import javax.sql.DataSource;
 
 import org.apache.empire.commons.StringUtils;
@@ -131,13 +132,22 @@ public abstract class WebApplication
     }
 
     /**
+     * handle view not found
+     * @param fc
+     * @param HttpServletRequest
+     */
+    public void onViewNotFound(final FacesContext fc, final HttpServletRequest req)
+    {   // View not Found Error
+        log.warn("No view found for request to '{}'. Use FacesUtils.redirectDirectly() to redirect to valid view.", req.getRequestURI());
+    }
+
+    /**
      * handle view change
      * @param fc
      * @param viewId
      */
     public void onChangeView(final FacesContext fc, String viewId)
-    {
-        // allow custom view change logic
+    {   // allow custom view change logic
 
         // clear page resources
         Map<String, Object> sm = FacesUtils.getSessionMap(fc);
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/PagePhaseListener.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/PagePhaseListener.java
index 9c140b8..38322c2 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/PagePhaseListener.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/PagePhaseListener.java
@@ -83,7 +83,10 @@ public class PagePhaseListener implements PhaseListener
         String viewId = vr.getViewId();
         if (viewId==null)
         {   // Error: No viewId!
-            log.warn("No viewId provided for PagePhaseEvent in phase {}.", phaseId);
+            if (phaseId==PhaseId.RENDER_RESPONSE)
+                FacesUtils.getWebApplication().onViewNotFound(fc, FacesUtils.getHttpRequest(fc));
+            else
+                log.error("No viewId provided for PagePhaseEvent in phase "+phaseId.getName());
             return;
         }
         
@@ -105,7 +108,6 @@ public class PagePhaseListener implements PhaseListener
         {   // No page definition available
             if (log.isDebugEnabled())
                 log.debug("No page definition available for viewId {}.", viewId);
-            return;
         }    
 
         // Check Request context path