Author: fhanik
Date: Fri Aug 31 14:23:30 2007
New Revision: 571592

URL: http://svn.apache.org/viewvc?rev=571592&view=rev
Log:
use the request processor to see if we are doing the action during a call or not

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java
    tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java?rev=571592&r1=571591&r2=571592&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CometEventImpl.java Fri Aug 
31 14:23:30 2007
@@ -45,7 +45,6 @@
         this.response = response;
         //default behavior is to only listen for read events
         register(CometOperation.OP_READ);
-        setWorkerThread();
     }
 
 
@@ -85,10 +84,6 @@
      */
     protected boolean blocking = true;
 
-    protected WorkerThreadCheck threadCheck = new WorkerThreadCheck();
-
-    private static final Object threadCheckHolder = new Object();
-    
     // --------------------------------------------------------- Public Methods
 
     /**
@@ -154,7 +149,6 @@
     }
     
     public void configureBlocking(boolean blocking) throws 
IllegalStateException {
-        checkWorkerThread();
         if ( getEventType() != EventType.BEGIN ) throw new 
IllegalStateException("Can only be configured during the BEGIN event.");
         MutableBoolean bool = new MutableBoolean(blocking);
         request.action(ActionCode.ACTION_COMET_CONFIGURE_BLOCKING,bool);
@@ -191,29 +185,9 @@
         return buf.toString();
     }
 
-    protected void setWorkerThread() {
-        threadCheck.set(threadCheckHolder);
-    }
-    
-    protected void unsetWorkerThread() {
-        threadCheck.set(null);
-    }
-
-    protected void checkWorkerThread() throws IllegalStateException {
-        //throw exception if not on worker thread
-        if ( !(threadCheck.get() == threadCheckHolder) ) 
-            throw new IllegalStateException("The operation can only be 
performed when invoked by a Tomcat worker thread.");
-    }
-    
     protected Integer translate(int op) {
         return new Integer(op);
     }
-    
-    //inner class used to keep track if the current thread is a worker thread.
-    private static class WorkerThreadCheck extends ThreadLocal {
-        
-    }
-    
     
 
 }

Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=571592&r1=571591&r2=571592&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Fri Aug 
31 14:23:30 2007
@@ -121,8 +121,6 @@
             boolean read = false;
             CometEvent event = request.getEvent();
             try {
-                if ( event!=null && (event instanceof CometEventImpl)) 
-                    ((CometEventImpl)event).setWorkerThread();
                 if (status == SocketStatus.OPEN_CALLBACK) {
                     if (response.isClosed()) {
                         // The event has been closed asynchronously, so call 
end instead of
@@ -243,9 +241,6 @@
                 error = true;
                 return false;
             } finally {
-                if ( event!=null && (event instanceof CometEventImpl)) 
-                    ((CometEventImpl)event).unsetWorkerThread();
-
                 req.getRequestProcessor().setWorkerThreadName(null);
                 // Recycle the wrapper request and response
                 if (error || response.isClosed() || !request.isComet()) {
@@ -340,9 +335,6 @@
         } catch (Throwable t) {
             log.error(sm.getString("coyoteAdapter.service"), t);
         } finally {
-            if ( event!=null && (event instanceof CometEventImpl)) 
-                ((CometEventImpl)event).unsetWorkerThread();
-
             req.getRequestProcessor().setWorkerThreadName(null);
             // Recycle the wrapper request and response
             if (!comet) {

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=571592&r1=571591&r2=571592&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Aug 
31 14:23:30 2007
@@ -1243,6 +1243,9 @@
         } else if (actionCode == ActionCode.ACTION_COMET_CONFIGURE_BLOCKING) {
             MutableBoolean bool = (MutableBoolean)param;
             if ( bool.get() ) throw new IllegalStateException("Not yet 
implemented");
+            RequestInfo rp = request.getRequestProcessor();
+            if ( rp.getStage() != org.apache.coyote.Constants.STAGE_SERVICE )
+                throw new IllegalStateException("Can only be configured during 
an event.");
         } else if (actionCode == ActionCode.ACTION_COMET_READABLE) {
             MutableBoolean bool = (MutableBoolean)param;
             try {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to