Author: mrdon
Date: Sat Sep  9 17:18:08 2006
New Revision: 441881

URL: http://svn.apache.org/viewvc?view=rev&rev=441881
Log:
Changed JSF interceptors to fail fast and show problem report to users, fixed 
test in showcase,
ensured that config errors will show problem report when using filter dispatcher
WW-1424 
WW-1349

Modified:
    
struts/struts2/trunk/apps/showcase/src/test/java/org/apache/struts2/showcase/tutorial/HelloTest.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java

Modified: 
struts/struts2/trunk/apps/showcase/src/test/java/org/apache/struts2/showcase/tutorial/HelloTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/test/java/org/apache/struts2/showcase/tutorial/HelloTest.java?view=diff&rev=441881&r1=441880&r2=441881
==============================================================================
--- 
struts/struts2/trunk/apps/showcase/src/test/java/org/apache/struts2/showcase/tutorial/HelloTest.java
 (original)
+++ 
struts/struts2/trunk/apps/showcase/src/test/java/org/apache/struts2/showcase/tutorial/HelloTest.java
 Sat Sep  9 17:18:08 2006
@@ -1,3 +1,5 @@
+package org.apache.struts2.showcase.tutorial;
+
 import junit.framework.TestCase;
 
 /**

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?view=diff&rev=441881&r1=441880&r2=441881
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
 Sat Sep  9 17:18:08 2006
@@ -555,7 +555,7 @@
      * @param code     the HttpServletResponse error code (see [EMAIL 
PROTECTED] javax.servlet.http.HttpServletResponse} for possible error codes).
      * @param e        the Exception that is reported.
      */
-    private void sendError(HttpServletRequest request, HttpServletResponse 
response, 
+    public void sendError(HttpServletRequest request, HttpServletResponse 
response, 
             ServletContext ctx, int code, Exception e) {
         if (devMode) {
             response.setContentType("text/html");
@@ -613,8 +613,12 @@
     
     /** Simple accessor for a static method */
     public class Locator {
-        public Location getLocation(Throwable t) {
-            return LocationUtils.getLocation(t);
+        public Location getLocation(Object obj) {
+            Location loc = LocationUtils.getLocation(obj);
+            if (loc == null) {
+                return Location.UNKNOWN;
+            } 
+            return loc;
         }
     }
 

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java?view=diff&rev=441881&r1=441880&r2=441881
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
 Sat Sep  9 17:18:08 2006
@@ -49,8 +49,10 @@
 import org.apache.struts2.dispatcher.mapper.ActionMapperFactory;
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
 
+import com.opensymphony.module.sitemesh.RequestConstants;
 import com.opensymphony.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.XWorkException;
 
 /**
  * Master filter for Struts that handles four distinct 
@@ -214,8 +216,16 @@
             Dispatcher.setInstance(du);
         }
 
-        ActionMapper mapper = ActionMapperFactory.getMapper();
-        ActionMapping mapping = mapper.getMapping(request, 
du.getConfigurationManager().getConfiguration());
+        ActionMapper mapper = null;
+        ActionMapping mapping = null;
+        try {
+            mapper = ActionMapperFactory.getMapper();
+            mapping = mapper.getMapping(request, 
du.getConfigurationManager().getConfiguration());
+        } catch (Exception ex) {
+            du.sendError(request, response, servletContext, 
response.SC_INTERNAL_SERVER_ERROR, ex);
+            ActionContextCleanUp.cleanUp(req);
+            return;
+        }
 
         if (mapping == null) {
             // there is no action in this request, should we look for a static 
resource?

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java?view=diff&rev=441881&r1=441880&r2=441881
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/jsf/FacesSetupInterceptor.java
 Sat Sep  9 17:18:08 2006
@@ -229,7 +229,8 @@
                 }
             }
         } else {
-            log.error("Unable to initialize jsf interceptors probably due 
missing JSF implementation libraries");
+            throw new StrutsException("Unable to initialize jsf interceptors 
probably due missing JSF implementation libraries",
+                    invocation.getProxy().getConfig());
         }
         return invocation.invoke();
     }


Reply via email to