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:36:32 UTC
svn commit: r1581889 - in /tomcat/trunk/java/org/apache/coyote/http11:
InternalAprInputBuffer.java InternalAprOutputBuffer.java
InternalNioOutputBuffer.java upgrade/AprServletInputStream.java
upgrade/AprServletOutputStream.java
Author: markt
Date: Wed Mar 26 15:36:31 2014
New Revision: 1581889
URL: http://svn.apache.org/r1581889
Log:
Locks should be outside try/finally
Modified:
tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java
tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java?rev=1581889&r1=1581888&r2=1581889&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java Wed Mar 26 15:36:31 2014
@@ -623,8 +623,8 @@ public class InternalAprInputBuffer exte
boolean readDone = false;
int result = 0;
+ readLock.lock();
try {
- readLock.lock();
if (wrapper.getBlockingStatus() == block) {
result = Socket.recvbb(socket, 0, buf.length - lastValid);
readDone = true;
@@ -634,8 +634,8 @@ public class InternalAprInputBuffer exte
}
if (!readDone) {
+ writeLock.lock();
try {
- writeLock.lock();
wrapper.setBlockingStatus(block);
// Set the current settings for this socket
if (block) {
@@ -645,8 +645,8 @@ public class InternalAprInputBuffer exte
Socket.timeoutSet(socket, 0);
}
// Downgrade the lock
+ readLock.lock();
try {
- readLock.lock();
writeLock.unlock();
result = Socket.recvbb(socket, 0, buf.length - lastValid);
} finally {
Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java?rev=1581889&r1=1581888&r2=1581889&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java Wed Mar 26 15:36:31 2014
@@ -239,8 +239,8 @@ public class InternalAprOutputBuffer ext
Lock readLock = wrapper.getBlockingStatusReadLock();
WriteLock writeLock = wrapper.getBlockingStatusWriteLock();
+ readLock.lock();
try {
- readLock.lock();
if (wrapper.getBlockingStatus() == block) {
writeToSocket();
return;
@@ -249,8 +249,8 @@ public class InternalAprOutputBuffer ext
readLock.unlock();
}
+ writeLock.lock();
try {
- writeLock.lock();
// Set the current settings for this socket
wrapper.setBlockingStatus(block);
if (block) {
@@ -260,8 +260,8 @@ public class InternalAprOutputBuffer ext
}
// Downgrade the lock
+ readLock.lock();
try {
- readLock.lock();
writeLock.unlock();
writeToSocket();
} finally {
Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java?rev=1581889&r1=1581888&r2=1581889&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java Wed Mar 26 15:36:31 2014
@@ -141,7 +141,7 @@ public class InternalNioOutputBuffer ext
do {
if (socket.flush(true,selector,writeTimeout)) break;
}while ( true );
- }finally {
+ } finally {
if ( selector != null ) pool.put(selector);
}
if ( block || bytebuffer.remaining()==0) {
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java?rev=1581889&r1=1581888&r2=1581889&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java Wed Mar 26 15:36:31 2014
@@ -57,8 +57,8 @@ public class AprServletInputStream exten
boolean readDone = false;
int result = 0;
+ readLock.lock();
try {
- readLock.lock();
if (wrapper.getBlockingStatus() == block) {
result = Socket.recv(socket, b, off, len);
readDone = true;
@@ -68,14 +68,14 @@ public class AprServletInputStream exten
}
if (!readDone) {
+ writeLock.lock();
try {
- writeLock.lock();
wrapper.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.recv(socket, b, off, len);
} finally {
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java?rev=1581889&r1=1581888&r2=1581889&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java Wed Mar 26 15:36:31 2014
@@ -62,8 +62,8 @@ public class AprServletOutputStream exte
Lock readLock = socketWrapper.getBlockingStatusReadLock();
WriteLock writeLock = socketWrapper.getBlockingStatusWriteLock();
+ readLock.lock();
try {
- readLock.lock();
if (socketWrapper.getBlockingStatus() == block) {
return doWriteInternal(b, off, len);
}
@@ -71,8 +71,8 @@ public class AprServletOutputStream exte
readLock.unlock();
}
+ writeLock.lock();
try {
- writeLock.lock();
// Set the current settings for this socket
socketWrapper.setBlockingStatus(block);
if (block) {
@@ -82,8 +82,8 @@ public class AprServletOutputStream exte
}
// Downgrade the lock
+ readLock.lock();
try {
- readLock.lock();
writeLock.unlock();
return doWriteInternal(b, off, len);
} finally {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org