Author: remy.maucherat(a)jboss.com
Date: 2009-11-05 17:12:26 -0500 (Thu, 05 Nov 2009)
New Revision: 1245
Modified:
trunk/java/org/apache/catalina/connector/Request.java
trunk/java/org/apache/catalina/core/ApplicationDispatcher.java
trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
trunk/java/org/apache/catalina/core/StandardHostValve.java
Log:
- Should fix isAsyncStarted.
- Fix problems with the integers used for getDispatcherType (and add it in the request
wrapper too).
Modified: trunk/java/org/apache/catalina/connector/Request.java
===================================================================
--- trunk/java/org/apache/catalina/connector/Request.java 2009-11-05 16:28:02 UTC (rev
1244)
+++ trunk/java/org/apache/catalina/connector/Request.java 2009-11-05 22:12:26 UTC (rev
1245)
@@ -3002,7 +3002,7 @@
}
public boolean isAsyncStarted() {
- return (asyncContext != null);
+ return (asyncContext != null && !canStartAsync && eventMode);
}
public boolean isAsyncSupported() {
Modified: trunk/java/org/apache/catalina/core/ApplicationDispatcher.java
===================================================================
--- trunk/java/org/apache/catalina/core/ApplicationDispatcher.java 2009-11-05 16:28:02 UTC
(rev 1244)
+++ trunk/java/org/apache/catalina/core/ApplicationDispatcher.java 2009-11-05 22:12:26 UTC
(rev 1245)
@@ -373,7 +373,7 @@
requestPath);
state.outerRequest.setAttribute
(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.ASYNC_INTEGER));
+ ApplicationFilterFactory.ASYNC_INTEGER);
invoke(state.outerRequest, response, state);
}
@@ -531,13 +531,13 @@
Integer disInt = (Integer) request.getAttribute
(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR);
if (disInt != null) {
- if (disInt.intValue() != ApplicationFilterFactory.ERROR) {
+ if (disInt != ApplicationFilterFactory.ERROR_INTEGER) {
state.outerRequest.setAttribute
(ApplicationFilterFactory.DISPATCHER_REQUEST_PATH_ATTR,
requestPath);
state.outerRequest.setAttribute
(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.FORWARD));
+ ApplicationFilterFactory.FORWARD_INTEGER);
invoke(state.outerRequest, response, state);
} else {
invoke(state.outerRequest, response, state);
@@ -600,7 +600,7 @@
if (servletPath != null)
wrequest.setServletPath(servletPath);
wrequest.setAttribute(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.INCLUDE));
+ ApplicationFilterFactory.INCLUDE_INTEGER);
wrequest.setAttribute(
ApplicationFilterFactory.DISPATCHER_REQUEST_PATH_ATTR,
requestPath);
@@ -632,7 +632,7 @@
}
wrequest.setAttribute(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.INCLUDE));
+ ApplicationFilterFactory.INCLUDE_INTEGER);
wrequest.setAttribute(
ApplicationFilterFactory.DISPATCHER_REQUEST_PATH_ATTR,
requestPath);
Modified: trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
===================================================================
--- trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-11-05 16:28:02
UTC (rev 1244)
+++ trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-11-05 22:12:26
UTC (rev 1245)
@@ -74,15 +74,15 @@
// -------------------------------------------------------------- Constants
- public static final int ERROR = 1;
+ private static final int ERROR = 1;
public static final Integer ERROR_INTEGER = new Integer(ERROR);
- public static final int FORWARD = 2;
+ private static final int FORWARD = 2;
public static final Integer FORWARD_INTEGER = new Integer(FORWARD);
- public static final int INCLUDE = 4;
+ private static final int INCLUDE = 4;
public static final Integer INCLUDE_INTEGER = new Integer(INCLUDE);
- public static final int REQUEST = 8;
+ private static final int REQUEST = 8;
public static final Integer REQUEST_INTEGER = new Integer(REQUEST);
- public static final int ASYNC = 16;
+ private static final int ASYNC = 16;
public static final Integer ASYNC_INTEGER = new Integer(ASYNC);
public static final String DISPATCHER_TYPE_ATTR =
Modified: trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java
===================================================================
--- trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java 2009-11-05 16:28:02
UTC (rev 1244)
+++ trunk/java/org/apache/catalina/core/ApplicationHttpRequest.java 2009-11-05 22:12:26
UTC (rev 1245)
@@ -28,6 +28,7 @@
import java.util.NoSuchElementException;
import javax.servlet.AsyncContext;
+import javax.servlet.DispatcherType;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
@@ -239,6 +240,25 @@
}
+ public DispatcherType getDispatcherType() {
+ if (dispatcherType == null) {
+ return DispatcherType.REQUEST;
+ } else if (dispatcherType == ApplicationFilterFactory.REQUEST_INTEGER) {
+ return DispatcherType.REQUEST;
+ } else if (dispatcherType == ApplicationFilterFactory.ASYNC_INTEGER) {
+ return DispatcherType.ASYNC;
+ } else if (dispatcherType == ApplicationFilterFactory.ERROR_INTEGER) {
+ return DispatcherType.ERROR;
+ } else if (dispatcherType == ApplicationFilterFactory.FORWARD_INTEGER) {
+ return DispatcherType.FORWARD;
+ } else if (dispatcherType == ApplicationFilterFactory.INCLUDE_INTEGER) {
+ return DispatcherType.INCLUDE;
+ }
+ // Never happens
+ throw new IllegalStateException();
+ }
+
+
/**
* Override the <code>getAttributeNames()</code> method of the wrapped
* request.
Modified: trunk/java/org/apache/catalina/core/StandardHostValve.java
===================================================================
--- trunk/java/org/apache/catalina/core/StandardHostValve.java 2009-11-05 16:28:02 UTC
(rev 1244)
+++ trunk/java/org/apache/catalina/core/StandardHostValve.java 2009-11-05 22:12:26 UTC
(rev 1245)
@@ -266,7 +266,7 @@
(ApplicationFilterFactory.DISPATCHER_REQUEST_PATH_ATTR,
errorPage.getLocation());
request.setAttribute(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.ERROR));
+ ApplicationFilterFactory.ERROR_INTEGER);
request.setAttribute
(Globals.STATUS_CODE_ATTR,
Integer.valueOf(HttpServletResponse.SC_INTERNAL_SERVER_ERROR));
@@ -345,7 +345,7 @@
(ApplicationFilterFactory.DISPATCHER_REQUEST_PATH_ATTR,
errorPage.getLocation());
request.setAttribute(ApplicationFilterFactory.DISPATCHER_TYPE_ATTR,
- Integer.valueOf(ApplicationFilterFactory.ERROR));
+ ApplicationFilterFactory.ERROR_INTEGER);
Wrapper wrapper = request.getWrapper();
Show replies by date