DO NOT REPLY [Bug 48345] New: Session does time-out shorter than setting in web.xml when PersistentManager is used.
https://issues.apache.org/bugzilla/show_bug.cgi?id=48345 Summary: Session does time-out shorter than setting in web.xml when PersistentManager is used. Product: Tomcat 6 Version: 6.0.20 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: fujino.keii...@oss.ntt.co.jp I am encountering the problem that Session does time-out shorter than setting in web.xml. This is a simple scenario where the problem occurs. I am using PersistentManager by the following configuration. I am setting the session-timeout at five minutes. 5 [scenario] 1. Create Session. 2. 120 seconds pass. Session does swapOut. 3. In addition, 120 seconds pass. Get Session. Session does swapIn and access time of session in the memory is updated. 4. In addition, 90 seconds pass. Get Session. Because the access time of the session has been updated in (3), The session should be able to be acquired. However, the session can not be acquired. This cause is StoreBase#processExpires invoked between (3) and (4). StoreBase#processExpire deletes the session saved in Store. StoreBase#processExpires is as follows. =StoreBase#processExpires= public void processExpires() { ... for (int i = 0; i < keys.length; i++) { try { StandardSession session = (StandardSession) load(keys[i]); if (session == null) { continue; } if (session.isValid()) { continue; } ... if ( ( (PersistentManagerBase) manager).isLoaded( keys[i] )) { // recycle old backup session session.recycle(); } else { // expire swapped out session session.expire(); } remove(session.getIdInternal()); } catch (Exception e) { ... } } } == The session saved in Store is loaded, and StandardSession#isValid() is executed. StandardSession#expire(true) is invoked for the session that passes session time-out in "StandardSession#isValid()". StandardSession#expire(true) invokes Manager#remove(Session). As a result, the session is deleted from the session map. In a word, session in memory is deleted by invalidating old session in Store. As a result, session does time-out shorter than setting in web.xml I made a patch against trunk. Best regards. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 48345] Session does time-out shorter than setting in web.xml when PersistentManager is used.
https://issues.apache.org/bugzilla/show_bug.cgi?id=48345 --- Comment #1 from Keiichi Fujino 2009-12-07 02:12:06 UTC --- Created an attachment (id=24674) --> (https://issues.apache.org/bugzilla/attachment.cgi?id=24674) patch for trunk. patch for trunk. IMHO, the following are necessary for backport to 6.0_trunk. Applies these revisions. http://svn.apache.org/viewvc?view=revision&revision=711716 http://svn.apache.org/viewvc?view=revision&revision=711720 remove duplicated local variable timeNow. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r887913 - /tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java
Author: markt Date: Mon Dec 7 12:49:56 2009 New Revision: 887913 URL: http://svn.apache.org/viewvc?rev=887913&view=rev Log: Typo Modified: tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java Modified: tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java?rev=887913&r1=887912&r2=887913&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/http/CookieSupport.java Mon Dec 7 12:49:56 2009 @@ -42,7 +42,7 @@ * If true, separators that are not explicitly dis-allowed by the v0 cookie * spec but are disallowed by the HTTP spec will be allowed in v0 cookie * names and values. These characters are: \"()/:<=>?...@[\\]{} Note that the - * inclusion of / depend on the value of {...@link #FWD_SLASH_IS_SEPARATOR}. + * inclusion of / depends on the value of {...@link #FWD_SLASH_IS_SEPARATOR}. */ public static final boolean ALLOW_HTTP_SEPARATORS_IN_V0; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r887927 - in /tomcat/trunk/java/org/apache/tomcat/util/bcel: Constants.java classfile/JavaClass.java generic/BasicType.java generic/ClassGen.java generic/Select.java
Author: markt Date: Mon Dec 7 14:14:49 2009 New Revision: 887927 URL: http://svn.apache.org/viewvc?rev=887927&view=rev Log: A little more cleanup. UCDetector claims there is no more to clean. I'm not yet convinced. Removed: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BasicType.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/ClassGen.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/JavaClass.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/Select.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java?rev=887927&r1=887926&r2=887927&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java Mon Dec 7 14:14:49 2009 @@ -24,11 +24,7 @@ */ public interface Constants { - - - - - /** One of the access flags for fields, methods, or classes. +/** One of the access flags for fields, methods, or classes. * @see #ACC_PUBLIC */ public final static short ACC_FINAL= 0x0010; @@ -271,11 +267,6 @@ * @see http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc.html";>Opcode definitions in The Java Virtual Machine Specification */ public static final short JSR_W= 201; - - - - - /** Illegal opcode. */ public static final short UNDEFINED = -1; /** Illegal opcode. */ @@ -287,32 +278,18 @@ /** Mnemonic for an illegal type. */ public static final String ILLEGAL_TYPE = ""; - /** Boolean data type. */ - public static final byte T_BOOLEAN = 4; - /** Char data type. */ - public static final byte T_CHAR= 5; - /** Float data type. */ - public static final byte T_FLOAT = 6; - /** Double data type. */ - public static final byte T_DOUBLE = 7; /** Byte data type. */ public static final byte T_BYTE= 8; /** Short data type. */ public static final byte T_SHORT = 9; /** Int data type. */ public static final byte T_INT = 10; - /** Long data type. */ - public static final byte T_LONG= 11; - /** Void data type (non-standard). */ - public static final byte T_VOID = 12; // Non-standard - /** Object data type. */ public static final byte T_OBJECT= 14; /** Unknown data type. */ public static final byte T_UNKNOWN = 15; - /** The primitive type names corresponding to the T_XX constants, * e.g., TYPE_NAMES[T_INT] = "int" @@ -323,14 +300,7 @@ "void", "array", "object", "unknown", "address" }; - /** The signature characters corresponding to primitive types, - * e.g., SHORT_TYPE_NAMES[T_INT] = "I" - */ - public static final String[] SHORT_TYPE_NAMES = { -ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE, -"Z", "C", "F", "D", "B", "S", "I", "J", -"V", ILLEGAL_TYPE, ILLEGAL_TYPE, ILLEGAL_TYPE - }; + /** * Number of byte code operands for each opcode, i.e., number of bytes after the tag byte Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/JavaClass.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/JavaClass.java?rev=887927&r1=887926&r2=887927&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/JavaClass.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/JavaClass.java Mon Dec 7 14:14:49 2009 @@ -31,7 +31,6 @@ * should see the ClassGen class. * @version $Id$ - * @see org.apache.tomcat.util.bcel.generic.ClassGen * @author mailto:m.d...@gmx.de";>M. Dahm */ public class JavaClass extends AccessFlags implements Cloneable, Comparable { @@ -49,8 +48,8 @@ private Attribute[] attributes; // attributes defined in the class private AnnotationEntry[] annotations; // annotations defined on the class -public static final byte FILE = 2; -public static final byte ZIP = 3; + + Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/Select.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/Select.java?rev=887927&r1=887926&r2=887927&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/Select.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/Select.java Mon Dec 7 14:14:49 2009 @@ -36,7 +36,7 @@ protected int[] match; // matches, i.e., case 1: ... protected int[] indices; // target offsets protected InstructionHandle[] targets; // target objects in instruction list -protected int f
svn commit: r887928 - in /tomcat/trunk/java/org/apache/catalina: Wrapper.java core/ApplicationFilterChain.java core/StandardWrapper.java deploy/ServletDef.java startup/WebRuleSet.java startup/WebXml.j
Author: markt Date: Mon Dec 7 14:17:14 2009 New Revision: 887928 URL: http://svn.apache.org/viewvc?rev=887928&view=rev Log: Add async-supported impl for Servlets Modified: tomcat/trunk/java/org/apache/catalina/Wrapper.java tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java tomcat/trunk/java/org/apache/catalina/deploy/ServletDef.java tomcat/trunk/java/org/apache/catalina/startup/WebRuleSet.java tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Modified: tomcat/trunk/java/org/apache/catalina/Wrapper.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Wrapper.java?rev=887928&r1=887927&r2=887928&view=diff == --- tomcat/trunk/java/org/apache/catalina/Wrapper.java (original) +++ tomcat/trunk/java/org/apache/catalina/Wrapper.java Mon Dec 7 14:17:14 2009 @@ -347,5 +347,17 @@ * Set the multi-part configuration for the associated servlet. To clear the * multi-part configuration specify null as the new value. */ -public void setMultipartConfigElement(MultipartConfigElement multipartConfig); +public void setMultipartConfigElement( +MultipartConfigElement multipartConfig); + +/** + * Does the associated Servlet support async processing? Defaults to + * true + */ +public boolean isAsyncSupported(); + +/** + * Set the async support for the associated servlet. + */ +public void setAsyncSupported(boolean asyncSupport); } Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java?rev=887928&r1=887927&r2=887928&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java Mon Dec 7 14:17:14 2009 @@ -28,8 +28,10 @@ import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; +import javax.servlet.ServletRequestWrapper; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import org.apache.catalina.Globals; @@ -273,11 +275,25 @@ support.fireInstanceEvent(InstanceEvent.BEFORE_SERVICE_EVENT, servlet, request, response); -if ((request instanceof HttpServletRequest) && +ServletRequest wRequest; +if (request.isAsyncSupported() +&& !support.getWrapper().isAsyncSupported()) { +if (request instanceof HttpServletRequest) { +wRequest = new HttpServletRequestNoAsyc( +(HttpServletRequest) request); +} else { +// Must be a ServletRequest +wRequest = new ServletRequestNoAsyc(request); +} +} else { +wRequest = request; +} +// Use potentially wrapped request from this point +if ((wRequest instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) { if( Globals.IS_SECURITY_ENABLED ) { -final ServletRequest req = request; +final ServletRequest req = wRequest; final ServletResponse res = response; Principal principal = ((HttpServletRequest) req).getUserPrincipal(); @@ -289,11 +305,12 @@ principal); args = null; } else { -servlet.service(request, response); +servlet.service(wRequest, response); } } else { -servlet.service(request, response); +servlet.service(wRequest, response); } +// Stop using wrapped request now Servlet has been processed support.fireInstanceEvent(InstanceEvent.AFTER_SERVICE_EVENT, servlet, request, response); } catch (IOException e) { @@ -581,4 +598,30 @@ } +// - Wrapper classes for isAsyncSupported() + +private class HttpServletRequestNoAsyc extends HttpServletRequestWrapper { + +public HttpServletRequestNoAsyc(HttpServletRequest request) { +super(request); +} + +@Override +public boolean isAsyncSupported() { +return false; +} +} + +privat
svn commit: r887929 - in /tomcat/trunk/java/org/apache/catalina/startup: ContextConfig.java LocalStrings.properties
Author: markt Date: Mon Dec 7 14:18:29 2009 New Revision: 887929 URL: http://svn.apache.org/viewvc?rev=887929&view=rev Log: Add annotation support for WebServlet Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=887929&r1=887928&r2=887929&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Mon Dec 7 14:18:29 2009 @@ -29,6 +29,7 @@ import java.net.URISyntaxException; import java.net.URL; import java.net.URLConnection; +import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -40,6 +41,14 @@ import javax.servlet.ServletContext; +import org.apache.tomcat.util.bcel.classfile.AnnotationElementValue; +import org.apache.tomcat.util.bcel.classfile.AnnotationEntry; +import org.apache.tomcat.util.bcel.classfile.ArrayElementValue; +import org.apache.tomcat.util.bcel.classfile.ClassFormatException; +import org.apache.tomcat.util.bcel.classfile.ClassParser; +import org.apache.tomcat.util.bcel.classfile.ElementValue; +import org.apache.tomcat.util.bcel.classfile.ElementValuePair; +import org.apache.tomcat.util.bcel.classfile.JavaClass; import org.apache.catalina.Authenticator; import org.apache.catalina.Container; import org.apache.catalina.Context; @@ -61,6 +70,7 @@ import org.apache.catalina.deploy.FilterMap; import org.apache.catalina.deploy.LoginConfig; import org.apache.catalina.deploy.SecurityConstraint; +import org.apache.catalina.deploy.ServletDef; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.naming.resources.DirContextURLConnection; @@ -1586,8 +1596,8 @@ dcUrlConn = (DirContextURLConnection) urlConn; dcUrlConn.setUseCaches(false); -String ct = dcUrlConn.getContentType(); -if (ResourceAttributes.COLLECTION_TYPE.equals(ct)) { +String type = dcUrlConn.getHeaderField(ResourceAttributes.TYPE); +if (ResourceAttributes.COLLECTION_TYPE.equals(type)) { // Collection Enumeration dirs = dcUrlConn.list(); while (dirs.hasMoreElements()) { @@ -1618,7 +1628,7 @@ } } } catch (IOException e) { -log.error(sm.getString("contextConfig.jarFile", url), e); +log.error(sm.getString("contextConfig.jndiUrl", url), e); } } @@ -1651,10 +1661,123 @@ } -protected void processAnnotationsStream(InputStream is, WebXml fragment) { -// TODO SERVLET 3 +protected void processAnnotationsStream(InputStream is, WebXml fragment) +throws ClassFormatException, IOException { + +ClassParser parser = new ClassParser(is, null); +JavaClass clazz = parser.parse(); +String className = clazz.getClassName(); +AnnotationEntry[] annotationsEntries = clazz.getAnnotationEntries(); + +for (AnnotationEntry ae : annotationsEntries) { +String type = ae.getAnnotationType(); +if ("Ljavax/servlet/annotation/WebServlet;".equals(type)) { +processAnnotationWebServlet(className, ae, fragment); +} else { +// TODO SERVLET 3 - Other annotations +// Unknown annotation - ignore +} +} +} + +protected void processAnnotationWebServlet(String className, +AnnotationEntry ae, WebXml fragment) { +if (fragment.getServlets().containsKey(className)) { +// Skip this annotation. Entry in web.xml takes priority +return; +} +boolean mappingSet = false; +ServletDef servletDef = new ServletDef(); +servletDef.setServletName(className); +servletDef.setServletClass(className); +String[] mappings = null; + +ElementValuePair[] evps = ae.getElementValuePairs(); +for (ElementValuePair evp : evps) { +String name = evp.getNameString(); +if ("value".equals(name) || "urlPatterns".equals(name)) { +if (mappingSet) { +throw new IllegalArgumentException(sm.getString( +"contextConfig.urlPatternValue", className)); +} +mappingSet = true; +mappings = processAnnotationsUrlPatterns(evp.getValue()); +} else if ("name".equals(name)) { +servletDef.setServletName(evp.getValue().stringifyValue()); +} else if ("description".equals(name
svn commit: r887931 - /tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
Author: markt Date: Mon Dec 7 14:25:21 2009 New Revision: 887931 URL: http://svn.apache.org/viewvc?rev=887931&view=rev Log: Add annotation support for WebListener Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=887931&r1=887930&r2=887931&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Mon Dec 7 14:25:21 2009 @@ -1673,6 +1673,8 @@ String type = ae.getAnnotationType(); if ("Ljavax/servlet/annotation/WebServlet;".equals(type)) { processAnnotationWebServlet(className, ae, fragment); +}else if ("Ljavax/servlet/annotation/WebListener;".equals(type)) { +fragment.addListener(className); } else { // TODO SERVLET 3 - Other annotations // Unknown annotation - ignore - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
DO NOT REPLY [Bug 48346] New: org.apache.tomcat.util.net.NioEndpoint-NullPointerException-Start the Server
https://issues.apache.org/bugzilla/show_bug.cgi?id=48346 Summary: org.apache.tomcat.util.net.NioEndpoint-NullPointerExce ption-Start the Server Product: Tomcat 6 Version: 6.0.18 Platform: PC OS/Version: Windows XP Status: NEW Severity: critical Priority: P2 Component: Connectors AssignedTo: dev@tomcat.apache.org ReportedBy: casimir...@gmail.com Hi, When i start the Tomcat Server 6.0.18 using Eclipse,getting the following Exception. Dec 7, 2009 5:59:04 PM org.apache.tomcat.util.net.NioEndpoint setSocketOptions SEVERE: java.lang.NullPointerException at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:1011) at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1204) at java.lang.Thread.run(Thread.java:595) Dec 7, 2009 5:59:04 PM org.apache.tomcat.util.net.NioEndpoint setSocketOptions SEVERE: java.lang.NullPointerException at org.apache.tomcat.util.net.NioEndpoint.setSocketOptions(NioEndpoint.java:1011) at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1204) at java.lang.Thread.run(Thread.java:595) Dec 7, 2009 5:59:04 PM org.apache.coyote.http11.Http11NioProtocol start -- So how to solve this exception.What is the reason it is throwing this kind of exception. Regards Casimir Rex. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r887992 - in /tomcat/trunk/java/org/apache/catalina: core/ApplicationDispatcher.java core/ApplicationFilterChain.java core/StandardWrapperValve.java deploy/FilterDef.java startup/ContextCo
Author: markt Date: Mon Dec 7 16:43:25 2009 New Revision: 887992 URL: http://svn.apache.org/viewvc?rev=887992&view=rev Log: Add support for WebFilter Remove wrappers to implement isAsyncSupported() having found the setAttribute() code It is individual filters rather than the whole filter chain that need to be considered for isAsyncSupported Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java?rev=887992&r1=887991&r2=887992&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java Mon Dec 7 16:43:25 2009 @@ -641,15 +641,6 @@ ApplicationFilterChain filterChain = factory.createFilterChain(request, wrapper,servlet); -Object origAsyncSupported = request.getAttribute(Globals.ASYNC_SUPPORTED_ATTR); -//we have a new filter chain, setup isAsyncSupported here -boolean filterAsyncSupported = filterChain.isAsyncSupported(); -if (!filterAsyncSupported && request.isAsyncSupported()) { -//the request says we support it, but the filters don't -//TODO SERVLET3 - async -request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, Boolean.FALSE); -} - // Call the service() method for the allocated servlet instance try { String jspFile = wrapper.getJspFile(); @@ -704,8 +695,6 @@ wrapper.getLogger().error(sm.getString("applicationDispatcher.serviceException", wrapper.getName()), e); runtimeException = e; -} finally { -request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, origAsyncSupported); } // Release the filter chain (if any) for this request @@ -715,7 +704,7 @@ } catch (Throwable e) { wrapper.getLogger().error(sm.getString("standardWrapper.releaseFilters", wrapper.getName()), e); -// FIXME: Exception handling needs to be simpiler to what is in the StandardWrapperValue +// FIXME: Exception handling needs to be simpler to what is in the StandardWrapperValue } // Deallocate the allocated servlet instance Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java?rev=887992&r1=887991&r2=887992&view=diff == --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java Mon Dec 7 16:43:25 2009 @@ -28,10 +28,8 @@ import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; -import javax.servlet.ServletRequestWrapper; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; import org.apache.catalina.Globals; @@ -224,6 +222,11 @@ support.fireInstanceEvent(InstanceEvent.BEFORE_FILTER_EVENT, filter, request, response); +if (request.isAsyncSupported() && "false".equalsIgnoreCase( +filterConfig.getFilterDef().getAsyncSupported())) { +request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, +Boolean.FALSE); +} if( Globals.IS_SECURITY_ENABLED ) { final ServletRequest req = request; final ServletResponse res = response; @@ -275,25 +278,17 @@ support.fireInstanceEvent(InstanceEvent.BEFORE_SERVICE_EVENT, servlet, request, response); -ServletRequest wRequest; if (request.isAsyncSupported() && !support.getWrapper().isAsyncSupported()) { -if (request instanceof HttpServletRequest) { -wRequest = new HttpServletRequestNoAsyc( -(HttpServletRequest) requ
svn commit: r887998 - /tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/
Author: markt Date: Mon Dec 7 16:56:00 2009 New Revision: 887998 URL: http://svn.apache.org/viewvc?rev=887998&view=rev Log: More BCEL pruning Removed: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFEQ.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFGE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFGT.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFLE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFLT.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFNE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFNONNULL.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IFNULL.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ACMPEQ.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ACMPNE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPEQ.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPGE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPGT.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPLE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPLT.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IF_ICMPNE.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/IfInstruction.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/MethodGen.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/StackConsumer.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BranchInstruction.java tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/LocalVariableGen.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BranchInstruction.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BranchInstruction.java?rev=887998&r1=887997&r2=887998&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BranchInstruction.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/BranchInstruction.java Mon Dec 7 16:56:00 2009 @@ -43,14 +43,7 @@ } -/** Common super constructor - * @param opcode Instruction opcode - * @param target instruction to branch to - */ -protected BranchInstruction(short opcode, InstructionHandle target) { -super(opcode, (short) 3); -setTarget(target); -} + /** Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/LocalVariableGen.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/LocalVariableGen.java?rev=887998&r1=887997&r2=887998&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/LocalVariableGen.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/LocalVariableGen.java Mon Dec 7 16:56:00 2009 @@ -27,7 +27,6 @@ * @version $Id$ * @author mailto:m.d...@gmx.de";>M. Dahm * @see LocalVariable - * @see MethodGen */ public class LocalVariableGen implements InstructionTargeter, NamedAndTyped, Cloneable, java.io.Serializable { - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888010 - in /tomcat/trunk/java/org/apache/tomcat/util/bcel: classfile/ generic/
Author: markt Date: Mon Dec 7 17:11:10 2009 New Revision: 888010 URL: http://svn.apache.org/viewvc?rev=888010&view=rev Log: Remove remains of generic package More clean up Removed: tomcat/trunk/java/org/apache/tomcat/util/bcel/generic/ Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ClassElementValue.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValuePair.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/EnumElementValue.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/SimpleElementValue.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/Utility.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java?rev=888010&r1=888009&r2=888010&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/AnnotationEntry.java Mon Dec 7 17:11:10 2009 @@ -76,13 +76,7 @@ return c.getBytes(); } -/** - * @return the annotation type index - */ -public int getAnnotationTypeIndex() -{ - return type_index; -} + @@ -108,15 +102,9 @@ } - public boolean isRuntimeVisible() - { - return isRuntimeVisible; - } + - public void addElementNameValuePair(ElementValuePair elementNameValuePair) - { - element_value_pairs.add(elementNameValuePair); - } + } Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ClassElementValue.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ClassElementValue.java?rev=888010&r1=888009&r2=888010&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ClassElementValue.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ClassElementValue.java Mon Dec 7 17:11:10 2009 @@ -17,17 +17,9 @@ this.idx = idx; } - public int getIndex() - { - return idx; - } + - public String getClassString() - { - ConstantUtf8 c = (ConstantUtf8) cpool.getConstant(idx, - Constants.CONSTANT_Utf8); - return c.getBytes(); - } + public String stringifyValue() { Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java?rev=888010&r1=888009&r2=888010&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java Mon Dec 7 17:11:10 2009 @@ -31,7 +31,6 @@ * @version $Id$ * @see Constant - * @see org.apache.tomcat.util.bcel.generic.ConstantPoolGen * @author mailto:m.d...@gmx.de";>M. Dahm */ public class ConstantPool implements Cloneable, Serializable { Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java?rev=888010&r1=888009&r2=888010&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValue.java Mon Dec 7 17:11:10 2009 @@ -42,10 +42,7 @@ this.cpool = cpool; } - public int getElementValueType() - { - return type; - } + public abstract String stringifyValue(); Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValuePair.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValuePair.java?rev=888010&r1=888009&r2=888010&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValuePair.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ElementValuePair.java Mon Dec 7 17:11:10 2009 @@ -55,10 +55,7 @@ return elementV
svn commit: r888027 - in /tomcat/trunk/java/org/apache/tomcat/util/bcel: Constants.java classfile/ConstantPool.java classfile/ConstantUtf8.java
Author: markt Date: Mon Dec 7 17:22:24 2009 New Revision: 888027 URL: http://svn.apache.org/viewvc?rev=888027&view=rev Log: More clean up Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantUtf8.java Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java?rev=888027&r1=888026&r2=888027&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/Constants.java Mon Dec 7 17:22:24 2009 @@ -284,9 +284,7 @@ public static final byte T_SHORT = 9; /** Int data type. */ public static final byte T_INT = 10; - - /** Object data type. */ - public static final byte T_OBJECT= 14; + /** Unknown data type. */ public static final byte T_UNKNOWN = 15; Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java?rev=888027&r1=888026&r2=888027&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantPool.java Mon Dec 7 17:22:24 2009 @@ -39,12 +39,7 @@ private Constant[] constant_pool; -/** - * @param constant_pool Array of constants - */ -public ConstantPool(Constant[] constant_pool) { -setConstantPool(constant_pool); -} + /** @@ -274,18 +269,6 @@ } - - - -/** - * @param constant_pool - */ -public void setConstantPool( Constant[] constant_pool ) { -this.constant_pool = constant_pool; -constant_pool_count = (constant_pool == null) ? 0 : constant_pool.length; -} - - /** * @return String representation. */ Modified: tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantUtf8.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantUtf8.java?rev=888027&r1=888026&r2=888027&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantUtf8.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/bcel/classfile/ConstantUtf8.java Mon Dec 7 17:22:24 2009 @@ -51,16 +51,7 @@ } -/** - * @param bytes Data - */ -public ConstantUtf8(String bytes) { -super(Constants.CONSTANT_Utf8); -if (bytes == null) { -throw new IllegalArgumentException("bytes must not be null!"); -} -this.bytes = bytes; -} + /** - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888072 - /tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java
Author: markt Date: Mon Dec 7 18:48:27 2009 New Revision: 888072 URL: http://svn.apache.org/viewvc?rev=888072&view=rev Log: Shutdown the handlers used by webapps otherwise log messages in the buffer just get lost. Modified: tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java Modified: tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java?rev=888072&r1=888071&r2=888072&view=diff == --- tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java (original) +++ tomcat/trunk/java/org/apache/juli/ClassLoaderLogManager.java Mon Dec 7 18:48:27 2009 @@ -485,6 +485,33 @@ } +/** + * Need to override reset so the loggers loaded by the web applications can + * be shutdown. + */ +@Override +public void reset() { +super.reset(); +for (ClassLoaderLogInfo classLoaderLogInfo : classLoaderLoggers.values()) { +for (Logger logger : classLoaderLogInfo.loggers.values()) { +resetLogger(logger); +} +} +} + +private void resetLogger(Logger logger) { + +Handler[] handlers = logger.getHandlers(); +for (Handler handler : handlers) { +logger.removeHandler(handler); +try { +handler.close(); +} catch (Exception e) { +// Ignore +} +} +} + // LogNode Inner Class - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888074 - /tomcat/tc6.0.x/trunk/STATUS.txt
Author: markt Date: Mon Dec 7 18:49:29 2009 New Revision: 888074 URL: http://svn.apache.org/viewvc?rev=888074&view=rev Log: Proposal Modified: tomcat/tc6.0.x/trunk/STATUS.txt Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=888074&r1=888073&r2=888074&view=diff == --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Mon Dec 7 18:49:29 2009 @@ -475,3 +475,8 @@ http://svn.apache.org/viewvc?rev=886019&view=rev +1: markt -1: + +* Prevent lost log messages on shutdown + http://svn.apache.org/viewvc?rev=888072&view=rev + +1: markt + -1: - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888092 - /tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
Author: markt Date: Mon Dec 7 19:12:18 2009 New Revision: 888092 URL: http://svn.apache.org/viewvc?rev=888092&view=rev Log: Add missing part of recurrsion patch Modified: tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java Modified: tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java?rev=888092&r1=888091&r2=888092&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java Mon Dec 7 19:12:18 2009 @@ -260,7 +260,8 @@ public static boolean setProperty(Object o, String name, String value) { return setProperty(o,name,value,true); } -public static boolean setProperty(Object o, String name, String value,boolean invokeSetProperty) { +public static boolean setProperty(Object o, String name, String value, +boolean invokeSetProperty) { if (log.isDebugEnabled()) log.debug("IntrospectionUtils: setProperty(" + o.getClass() + " " + name + "=" + value + ")"); @@ -351,7 +352,8 @@ } // Ok, no setXXX found, try a setProperty("name", "value") -if (setPropertyMethodBool != null || setPropertyMethodVoid != null) { +if (invokeSetProperty && (setPropertyMethodBool != null || +setPropertyMethodVoid != null)) { Object params[] = new Object[2]; params[0] = name; params[1] = value; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888097 - /tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
Author: markt Date: Mon Dec 7 19:26:03 2009 New Revision: 888097 URL: http://svn.apache.org/viewvc?rev=888097&view=rev Log: More post-refactoring recurrsion protection Modified: tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=888097&r1=888096&r2=888097&view=diff == --- tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Mon Dec 7 19:26:03 2009 @@ -71,7 +71,7 @@ if (name.startsWith(socketName)) { return IntrospectionUtils.setProperty(socketProperties, name.substring(socketName.length()), value); } -return IntrospectionUtils.setProperty(this,name,value); +return super.setProperty(name, value); } catch ( Exception x ) { log.error("Unable to set attribute \""+name+"\" to \""+value+"\"",x); return false; - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r888203 - /tomcat/trunk/java/org/apache/catalina/startup/WebXml.java
Author: markt Date: Tue Dec 8 00:29:50 2009 New Revision: 888203 URL: http://svn.apache.org/viewvc?rev=888203&view=rev Log: Fix a couple of potential NPEs Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Modified: tomcat/trunk/java/org/apache/catalina/startup/WebXml.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/WebXml.java?rev=888203&r1=888202&r2=888203&view=diff == --- tomcat/trunk/java/org/apache/catalina/startup/WebXml.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/WebXml.java Tue Dec 8 00:29:50 2009 @@ -706,15 +706,19 @@ mergeFilter(entry.getValue(), filters.get(entry.getKey()), false); } else { -if (!(mergeFilter(entry.getValue(), -temp.getFilters().get(entry.getKey()), true))) { -log.error(sm.getString( -"webXml.mergeConflictFilter", -entry.getKey(), -fragment.getName(), -fragment.getURL())); - -return false; +if (temp.getFilters().containsKey(entry.getKey())) { +if (!(mergeFilter(entry.getValue(), +temp.getFilters().get(entry.getKey()), true))) { +log.error(sm.getString( +"webXml.mergeConflictFilter", +entry.getKey(), +fragment.getName(), +fragment.getURL())); + +return false; +} +} else { +temp.getFilters().put(entry.getKey(), entry.getValue()); } } } @@ -845,15 +849,19 @@ mergeServlet(entry.getValue(), servlets.get(entry.getKey()), false); } else { -if (!(mergeServlet(entry.getValue(), -temp.getServlets().get(entry.getKey()), true))) { -log.error(sm.getString( -"webXml.mergeConflictServlet", -entry.getKey(), -fragment.getName(), -fragment.getURL())); - -return false; +if (temp.getServlets().containsKey(entry.getKey())) { +if (!(mergeServlet(entry.getValue(), +temp.getServlets().get(entry.getKey()), true))) { +log.error(sm.getString( +"webXml.mergeConflictServlet", +entry.getKey(), +fragment.getName(), +fragment.getURL())); + +return false; +} +} else { +temp.getServlets().put(entry.getKey(), entry.getValue()); } } } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: svn commit: r887992 - in /tomcat/trunk/java/org/apache/catalina: core/ApplicationDispatcher.java core/ApplicationFilterChain.java core/StandardWrapperValve.java deploy/FilterDef.java startup/Con
On 07/12/2009, ma...@apache.org wrote: > Author: markt > Date: Mon Dec 7 16:43:25 2009 > New Revision: 887992 > > URL: http://svn.apache.org/viewvc?rev=887992&view=rev > Log: > Add support for WebFilter > Remove wrappers to implement isAsyncSupported() having found the > setAttribute() code > It is individual filters rather than the whole filter chain that need to be > considered for isAsyncSupported > > Modified: > tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java > tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java > tomcat/trunk/java/org/apache/catalina/core/StandardWrapperValve.java > tomcat/trunk/java/org/apache/catalina/deploy/FilterDef.java > tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java > tomcat/trunk/java/org/apache/catalina/startup/WebXml.java > > Modified: > tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java?rev=887992&r1=887991&r2=887992&view=diff > > == > --- tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java > (original) > +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationDispatcher.java > Mon Dec 7 16:43:25 2009 > @@ -641,15 +641,6 @@ > ApplicationFilterChain filterChain = > factory.createFilterChain(request, > > wrapper,servlet); > > -Object origAsyncSupported = > request.getAttribute(Globals.ASYNC_SUPPORTED_ATTR); > -//we have a new filter chain, setup isAsyncSupported here > -boolean filterAsyncSupported = filterChain.isAsyncSupported(); > -if (!filterAsyncSupported && request.isAsyncSupported()) { > -//the request says we support it, but the filters don't > -//TODO SERVLET3 - async > -request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, > Boolean.FALSE); > -} > - > // Call the service() method for the allocated servlet instance > try { > String jspFile = wrapper.getJspFile(); > @@ -704,8 +695,6 @@ > > wrapper.getLogger().error(sm.getString("applicationDispatcher.serviceException", > wrapper.getName()), e); > runtimeException = e; > -} finally { > -request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, > origAsyncSupported); > } > > // Release the filter chain (if any) for this request > @@ -715,7 +704,7 @@ > } catch (Throwable e) { > > wrapper.getLogger().error(sm.getString("standardWrapper.releaseFilters", > wrapper.getName()), e); > -// FIXME: Exception handling needs to be simpiler to what is in > the StandardWrapperValue > +// FIXME: Exception handling needs to be simpler to what is in > the StandardWrapperValue Should that be "similar to" ? If it really is "simpler", then it would be "simpler than". > } > > // Deallocate the allocated servlet instance > > Modified: > tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java > URL: > http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java?rev=887992&r1=887991&r2=887992&view=diff > > == > --- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java > (original) > +++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterChain.java > Mon Dec 7 16:43:25 2009 > @@ -28,10 +28,8 @@ > import javax.servlet.Servlet; > import javax.servlet.ServletException; > import javax.servlet.ServletRequest; > -import javax.servlet.ServletRequestWrapper; > import javax.servlet.ServletResponse; > import javax.servlet.http.HttpServletRequest; > -import javax.servlet.http.HttpServletRequestWrapper; > import javax.servlet.http.HttpServletResponse; > > import org.apache.catalina.Globals; > @@ -224,6 +222,11 @@ > support.fireInstanceEvent(InstanceEvent.BEFORE_FILTER_EVENT, >filter, request, response); > > +if (request.isAsyncSupported() && "false".equalsIgnoreCase( > +filterConfig.getFilterDef().getAsyncSupported())) { > +request.setAttribute(Globals.ASYNC_SUPPORTED_ATTR, > +Boolean.FALSE); > +} > if( Globals.IS_SECURITY_ENABLED ) { > final ServletRequest req = request; > final ServletResponse res = response; > @@ -275,25 +278,17 @@ > > support.fireInstanceEvent(InstanceEvent.BEFORE_SERVICE_EVENT, >