DO NOT REPLY [Bug 48345] New: Session does time-out shorter than setting in web.xml when PersistentManager is used.

2009-12-07 Thread bugzilla
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.

2009-12-07 Thread bugzilla
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread bugzilla
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

2009-12-07 Thread markt
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/

2009-12-07 Thread markt
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/

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread markt
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

2009-12-07 Thread sebb
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,
>