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 2013/05/01 17:57:40 UTC
svn commit: r1478063 - in /tomcat/trunk/java/org/apache/coyote/http11:
AbstractOutputBuffer.java InternalAprOutputBuffer.java
InternalNioOutputBuffer.java InternalOutputBuffer.java
Author: markt
Date: Wed May 1 15:57:40 2013
New Revision: 1478063
URL: http://svn.apache.org/r1478063
Log:
Wire in flushBuffer()
Modified:
tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.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/InternalOutputBuffer.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java?rev=1478063&r1=1478062&r2=1478063&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractOutputBuffer.java Wed May 1 15:57:40 2013
@@ -573,6 +573,7 @@ public abstract class AbstractOutputBuff
protected abstract boolean hasDataToWrite();
protected abstract void setBlocking(boolean blocking);
+ protected abstract boolean isBlocking();
/**
* Writes any remaining buffered data.
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=1478063&r1=1478062&r2=1478063&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java Wed May 1 15:57:40 2013
@@ -106,7 +106,7 @@ public class InternalAprOutputBuffer ext
super.flush();
// Flush the current buffer
- flushBuffer();
+ flushBuffer(isBlocking());
}
@@ -147,7 +147,7 @@ public class InternalAprOutputBuffer ext
if (lastActiveFilter != -1)
activeFilters[lastActiveFilter].end();
- flushBuffer();
+ flushBuffer(true);
finished = true;
@@ -198,14 +198,18 @@ public class InternalAprOutputBuffer ext
/**
* Callback to write data from the buffer.
*/
- private void flushBuffer()
- throws IOException {
+ @Override
+ protected boolean flushBuffer(boolean block) throws IOException {
+ // TODO: Non-blocking IO not yet implemented so always block parameter
+ // ignored
if (bbuf.position() > 0) {
if (Socket.sendbb(socket, 0, bbuf.position()) < 0) {
throw new IOException();
}
bbuf.clear();
}
+ // TODO: Non-blocking IO not yet implemented so always returns false
+ return false;
}
@@ -225,7 +229,7 @@ public class InternalAprOutputBuffer ext
@Override
- protected boolean flushBuffer(boolean block) throws IOException {
+ public boolean isBlocking() {
// TODO
return false;
}
@@ -253,7 +257,7 @@ public class InternalAprOutputBuffer ext
while (len > 0) {
int thisTime = len;
if (bbuf.position() == bbuf.capacity()) {
- flushBuffer();
+ flushBuffer(isBlocking());
}
if (thisTime > bbuf.capacity() - bbuf.position()) {
thisTime = bbuf.capacity() - bbuf.position();
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=1478063&r1=1478062&r2=1478063&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java Wed May 1 15:57:40 2013
@@ -394,6 +394,7 @@ public class InternalNioOutputBuffer ext
this.bufferedWriteSize = bufferedWriteSize;
}
+ @Override
public boolean isBlocking() {
return bufferedWrite == null;
}
Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java?rev=1478063&r1=1478062&r2=1478063&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java Wed May 1 15:57:40 2013
@@ -152,12 +152,9 @@ public class InternalOutputBuffer extend
* @throws IOException an underlying I/O error occurred
*/
@Override
- public void endRequest()
- throws IOException {
+ public void endRequest() throws IOException {
super.endRequest();
- if (useSocketBuffer) {
- socketBuffer.flushBuffer();
- }
+ flushBuffer(true);
}
@@ -233,12 +230,24 @@ public class InternalOutputBuffer extend
@Override
- protected boolean flushBuffer(boolean block) throws IOException {
+ public boolean isBlocking() {
// TODO
return false;
}
+ @Override
+ protected boolean flushBuffer(boolean block) throws IOException {
+ // Blocking connector so ignore block parameter as this will always use
+ // blocking IO.
+ if (useSocketBuffer) {
+ socketBuffer.flushBuffer();
+ }
+ // Always blocks so never any data left over.
+ return false;
+ }
+
+
// ----------------------------------- OutputStreamOutputBuffer Inner Class
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org