You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/01/27 15:10:56 UTC
svn commit: r500533 - in
/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio:
impl/ protocol/
Author: olegk
Date: Sat Jan 27 06:10:55 2007
New Revision: 500533
URL: http://svn.apache.org/viewvc?view=rev&rev=500533
Log:
Fixed the problem that caused the closing chunk to not be written when the output stream is not set to 'end of stream' mode
Modified:
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/impl/OutputBuffer.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java
jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/impl/OutputBuffer.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/impl/OutputBuffer.java?view=diff&rev=500533&r1=500532&r2=500533
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/impl/OutputBuffer.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/impl/OutputBuffer.java Sat Jan 27 06:10:55 2007
@@ -36,19 +36,28 @@
public class OutputBuffer extends ExpandableBuffer implements ContentOutputBuffer {
+ private boolean endOfStream;
+
public OutputBuffer(int buffersize) {
super(buffersize);
+ this.endOfStream = false;
}
public void produceContent(final ContentEncoder encoder) throws IOException {
setOutputMode();
encoder.write(this.buffer);
+ if (!hasData() && this.endOfStream) {
+ encoder.complete();
+ }
}
public void write(final byte[] b, int off, int len) throws IOException {
if (b == null) {
return;
}
+ if (this.endOfStream) {
+ return;
+ }
setInputMode();
ensureCapacity(this.buffer.position() + len);
this.buffer.put(b, off, len);
@@ -58,23 +67,31 @@
if (b == null) {
return;
}
+ if (this.endOfStream) {
+ return;
+ }
write(b, 0, b.length);
}
public void write(int b) throws IOException {
+ if (this.endOfStream) {
+ return;
+ }
setInputMode();
ensureCapacity(this.capacity() + 1);
this.buffer.put((byte)b);
}
public void clear() {
- super.clear();
+ super.clear();
+ this.endOfStream = false;
}
public void flush() {
}
public void shutdown() {
+ this.endOfStream = true;
}
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java?view=diff&rev=500533&r1=500532&r2=500533
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java Sat Jan 27 06:10:55 2007
@@ -323,6 +323,7 @@
OutputStream outstream = new ContentOutputStream(outbuffer);
entity.writeTo(outstream);
outstream.flush();
+ outstream.close();
}
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java?view=diff&rev=500533&r1=500532&r2=500533
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java Sat Jan 27 06:10:55 2007
@@ -371,6 +371,7 @@
OutputStream outstream = new ContentOutputStream(outbuffer);
entity.writeTo(outstream);
outstream.flush();
+ outstream.close();
}
}
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java?view=diff&rev=500533&r1=500532&r2=500533
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpServiceHandler.java Sat Jan 27 06:10:55 2007
@@ -419,6 +419,7 @@
OutputStream outstream = new ContentOutputStream(outbuffer);
entity.writeTo(outstream);
outstream.flush();
+ outstream.close();
}
}