You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2006/08/17 15:22:44 UTC

svn commit: r432230 - in /tomcat/tc6.0.x/trunk/java/org/apache/catalina: Wrapper.java connector/CoyoteAdapter.java core/StandardWrapper.java

Author: remm
Date: Thu Aug 17 06:22:44 2006
New Revision: 432230

URL: http://svn.apache.org/viewvc?rev=432230&view=rev
Log:
- Calling allocate for no reason was not a very good idea (adding an accessor instead for now, bleh).
- Simplify the event method.

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/Wrapper.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Wrapper.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/Wrapper.java?rev=432230&r1=432229&r2=432230&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/Wrapper.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/Wrapper.java Thu Aug 17 06:22:44 2006
@@ -217,6 +217,12 @@
 
 
     /**
+     * Return the associated servlet instance.
+     */
+    public Servlet getServlet();
+    
+    
+    /**
      * Return the value for the specified initialization parameter name,
      * if any; otherwise return <code>null</code>.
      *

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=432230&r1=432229&r2=432230&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Thu Aug 17 06:22:44 2006
@@ -19,6 +19,8 @@
 
 import java.io.IOException;
 
+import javax.servlet.Servlet;
+
 import org.apache.catalina.CometProcessor;
 import org.apache.catalina.Context;
 import org.apache.catalina.Globals;
@@ -117,25 +119,16 @@
 
         if (request.getWrapper() != null) {
             
+            CometProcessor servlet = null;
+
             // Bind the context CL to the current thread
             if (request.getContext().getLoader() != null ) {
                 Thread.currentThread().setContextClassLoader
                         (request.getContext().getLoader().getClassLoader());
             }
             
-            CometProcessor servlet = null;
             try {
                 servlet = (CometProcessor) request.getWrapper().allocate();
-            } catch (Throwable t) {
-                log.error(sm.getString("coyoteAdapter.service"), t);
-                request.recycle();
-                response.recycle();
-                // Restore the context classloader
-                Thread.currentThread().setContextClassLoader
-                    (CoyoteAdapter.class.getClassLoader());
-                return false;
-            }
-            try {
                 if (error) {
                     servlet.error(request.getRequest(), response.getResponse());
                 } else {
@@ -167,6 +160,11 @@
                 // Restore the context classloader
                 Thread.currentThread().setContextClassLoader
                     (CoyoteAdapter.class.getClassLoader());
+                try {
+                    request.getWrapper().deallocate((Servlet) servlet);
+                } catch (Exception e) {
+                    log.error(sm.getString("coyoteAdapter.service"), e);
+                }
                 // Recycle the wrapper request and response
                 if (error || response.isClosed()) {
                     request.recycle();
@@ -225,7 +223,7 @@
                 connector.getContainer().getPipeline().getFirst().invoke(request, response);
             }
 
-            if (request.getWrapper().allocate() instanceof CometProcessor 
+            if (request.getWrapper().getServlet() instanceof CometProcessor 
                     && !response.isClosed()) {
                 comet = true;
                 res.action(ActionCode.ACTION_COMET_BEGIN, null);

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=432230&r1=432229&r2=432230&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java Thu Aug 17 06:22:44 2006
@@ -750,6 +750,14 @@
 
 
     /**
+     * Return the associated servlet instance.
+     */
+    public Servlet getServlet() {
+        return instance;
+    }
+    
+    
+    /**
      * Allocate an initialized instance of this Servlet that is ready to have
      * its <code>service()</code> method called.  If the servlet class does
      * not implement <code>SingleThreadModel</code>, the (only) initialized



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org