You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/03/26 16:31:01 UTC

svn commit: r1581888 - /tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java

Author: markt
Date: Wed Mar 26 15:31:00 2014
New Revision: 1581888

URL: http://svn.apache.org/r1581888
Log:
Locks should be outside try/finally

Modified:
    tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java

Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=1581888&r1=1581887&r2=1581888&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Mar 26 15:31:00 2014
@@ -140,8 +140,8 @@ public class AjpAprProcessor extends Abs
 
         boolean writeDone = false;
         int result = 0;
+        readLock.lock();
         try {
-            readLock.lock();
             if (socketWrapper.getBlockingStatus() == block) {
                 result = Socket.sendbb(socket, pos, len);
                 writeDone = true;
@@ -151,14 +151,14 @@ public class AjpAprProcessor extends Abs
         }
 
         if (!writeDone) {
+            writeLock.lock();
             try {
-                writeLock.lock();
                 socketWrapper.setBlockingStatus(block);
                 // Set the current settings for this socket
                 Socket.optSet(socket, Socket.APR_SO_NONBLOCK, (block ? 0 : 1));
                 // Downgrade the lock
+                readLock.lock();
                 try {
-                    readLock.lock();
                     writeLock.unlock();
                     result = Socket.sendbb(socket, pos, len);
                 } finally {
@@ -237,8 +237,8 @@ public class AjpAprProcessor extends Abs
 
         boolean readDone = false;
         int result = 0;
+        readLock.lock();
         try {
-            readLock.lock();
             if (socketWrapper.getBlockingStatus() == block) {
                 result = Socket.recvbb(socket, pos, len);
                 readDone = true;
@@ -248,14 +248,14 @@ public class AjpAprProcessor extends Abs
         }
 
         if (!readDone) {
+            writeLock.lock();
             try {
-                writeLock.lock();
                 socketWrapper.setBlockingStatus(block);
                 // Set the current settings for this socket
                 Socket.optSet(socket, Socket.APR_SO_NONBLOCK, (block ? 0 : 1));
                 // Downgrade the lock
+                readLock.lock();
                 try {
-                    readLock.lock();
                     writeLock.unlock();
                     result = Socket.recvbb(socket, pos, len);
                 } finally {



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