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 2017/05/09 20:04:09 UTC
[21/22] httpcomponents-core git commit: HTTPCORE-229:
AbstractSessionInputBuffer#readLine(CharArrayBuffer) returns incorrect number
of characters read by the method when using non-standard HTTP element charset
HTTPCORE-229: AbstractSessionInputBuffer#readLine(CharArrayBuffer) returns incorrect number of characters read by the method when using non-standard HTTP element charset
git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpcore/branches/4.0.x@963847 13f79535-47bb-0310-9956-ffa450edef68
Project: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/commit/6f6d945a
Tree: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/tree/6f6d945a
Diff: http://git-wip-us.apache.org/repos/asf/httpcomponents-core/diff/6f6d945a
Branch: refs/heads/4.0.x
Commit: 6f6d945a0502d4a571214def758f0253747933ab
Parents: c4b80f3
Author: Oleg Kalnichevski <ol...@apache.org>
Authored: Tue Jul 13 20:01:21 2010 +0000
Committer: Oleg Kalnichevski <ol...@apache.org>
Committed: Tue Jul 13 20:01:21 2010 +0000
----------------------------------------------------------------------
RELEASE_NOTES.txt | 4 ++++
.../org/apache/http/impl/io/AbstractSessionInputBuffer.java | 2 ++
.../src/test/java/org/apache/http/impl/TestSessionBuffers.java | 5 ++++-
3 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/6f6d945a/RELEASE_NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index c40a741..fd2c2e1 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,5 +1,9 @@
Changes since 4.0.1
+* [HTTPCORE-229] AbstractSessionInputBuffer#readLine(CharArrayBuffer) returns incorrect
+ number of characters read by the method when using non-standard HTTP element charset.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
* [HTTPCORE-228] Fixed NPE in AsyncNHttpServiceHandler caused by entity enclosing requests
if no matching request handler can be found.
Contributed by Oleg Kalnichevski <olegk at apache.org>
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/6f6d945a/httpcore/src/main/java/org/apache/http/impl/io/AbstractSessionInputBuffer.java
----------------------------------------------------------------------
diff --git a/httpcore/src/main/java/org/apache/http/impl/io/AbstractSessionInputBuffer.java b/httpcore/src/main/java/org/apache/http/impl/io/AbstractSessionInputBuffer.java
index 8672a56..7415b54 100644
--- a/httpcore/src/main/java/org/apache/http/impl/io/AbstractSessionInputBuffer.java
+++ b/httpcore/src/main/java/org/apache/http/impl/io/AbstractSessionInputBuffer.java
@@ -283,6 +283,7 @@ public abstract class AbstractSessionInputBuffer implements SessionInputBuffer {
// This is VERY memory inefficient, BUT since non-ASCII charsets are
// NOT meant to be used anyway, there's no point optimizing it
String s = new String(this.linebuffer.buffer(), 0, l, this.charset);
+ l = s.length();
charbuffer.append(s);
}
return l;
@@ -305,6 +306,7 @@ public abstract class AbstractSessionInputBuffer implements SessionInputBuffer {
// NOT meant to be used anyway, there's no point optimizing it
String s = new String(this.buffer, off, len, this.charset);
charbuffer.append(s);
+ len = s.length();
}
return len;
}
http://git-wip-us.apache.org/repos/asf/httpcomponents-core/blob/6f6d945a/httpcore/src/test/java/org/apache/http/impl/TestSessionBuffers.java
----------------------------------------------------------------------
diff --git a/httpcore/src/test/java/org/apache/http/impl/TestSessionBuffers.java b/httpcore/src/test/java/org/apache/http/impl/TestSessionBuffers.java
index e658e4f..9fb3685 100644
--- a/httpcore/src/test/java/org/apache/http/impl/TestSessionBuffers.java
+++ b/httpcore/src/test/java/org/apache/http/impl/TestSessionBuffers.java
@@ -468,7 +468,10 @@ public class TestSessionBuffers extends TestCase {
HttpProtocolParams.setHttpElementCharset(params, HTTP.ISO_8859_1);
for (int i = 0; i < 10; i++) {
- assertEquals(s1, inbuffer.readLine());
+ CharArrayBuffer buf = new CharArrayBuffer(64);
+ int len = inbuffer.readLine(buf);
+ assertEquals(len, SWISS_GERMAN_HELLO.length);
+ assertEquals(s1, buf.toString());
}
assertNull(inbuffer.readLine());
assertNull(inbuffer.readLine());