Author: kkolinko
Date: Fri Apr 16 14:33:13 2010
New Revision: 934922

URL: http://svn.apache.org/viewvc?rev=934922&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48843
Prevent possible deadlock for worker allocation in APR connectors

Modified:
    tomcat/tc5.5.x/trunk/STATUS.txt
    
tomcat/tc5.5.x/trunk/connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=934922&r1=934921&r2=934922&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Apr 16 14:33:13 2010
@@ -120,9 +120,3 @@ PATCHES PROPOSED TO BACKPORT:
       (there is no link above):
        http://svn.apache.org/viewvc?rev=928732&view=rev
   -1: 
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48843
-  Prevent possible deadlock for worker allocation in APR
-  https://issues.apache.org/bugzilla/attachment.cgi?id=25226
-  +1: kkolinko, markt, jfclere, rjung
-  -1:

Modified: 
tomcat/tc5.5.x/trunk/connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=934922&r1=934921&r2=934922&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
 (original)
+++ 
tomcat/tc5.5.x/trunk/connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
 Fri Apr 16 14:33:13 2010
@@ -923,18 +923,17 @@ public class AprEndpoint {
      */
     protected Worker getWorkerThread() {
         // Allocate a new worker thread
-        Worker workerThread = createWorkerThread();
-        while (workerThread == null) {
-            try {
-                synchronized (workers) {
+        synchronized (workers) {
+            Worker workerThread;
+            while ((workerThread = createWorkerThread()) == null) {
+                try {
                     workers.wait();
+                } catch (InterruptedException e) {
+                    // Ignore
                 }
-            } catch (InterruptedException e) {
-                // Ignore
             }
-            workerThread = createWorkerThread();
+            return workerThread;
         }
-        return workerThread;
     }
 
 

Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=934922&r1=934921&r2=934922&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Fri Apr 16 
14:33:13 2010
@@ -29,10 +29,14 @@
     <author email="[email protected]">Filip Hanik</author>
     <author email="[email protected]">Peter Rossbach</author>
     <author email="[email protected]">Konstantin Kolinko</author>
+    <author email="[email protected]">Keiichi Fujino</author>
     <title>Changelog</title>
   </properties>
 
 <body>
+<!-- Section names:
+ General, Catalina, Coyote, Jasper, Cluster, Webapps
+-->
 <section name="Tomcat 5.5.30 (fhanik)">
   <subsection name="General">
     <changelog>
@@ -63,6 +67,10 @@
         the Listener element has been specified in server.xml. 
(fhanik/kkolinko)
       </fix>
       <fix>
+        <bug>48843</bug>: Prevent possible deadlock for worker allocation in
+        APR connectors. (kkolinko)
+      </fix>
+      <fix>
         Use chunked encoding for http 1.1 responses with no content-length
         (regardless of keep-alive) so client can differentiate between complete
         and partial responses. (markt)



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to