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();
}