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 2022/01/24 13:08:19 UTC

[httpcomponents-client] branch master updated: Bug fix: ByteArrayBuilder incorrectly handles empty strings

This is an automated email from the ASF dual-hosted git repository.

olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git


The following commit(s) were added to refs/heads/master by this push:
     new 235900e  Bug fix: ByteArrayBuilder incorrectly handles empty strings
235900e is described below

commit 235900eb57e3a7cdf84021858062025aab861338
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Mon Jan 24 13:58:07 2022 +0100

    Bug fix: ByteArrayBuilder incorrectly handles empty strings
---
 .../main/java/org/apache/hc/client5/http/utils/ByteArrayBuilder.java  | 4 ++--
 .../java/org/apache/hc/client5/http/utils/TestByteArrayBuilder.java   | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/utils/ByteArrayBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/utils/ByteArrayBuilder.java
index 6b78abc..f68797a 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/utils/ByteArrayBuilder.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/utils/ByteArrayBuilder.java
@@ -74,8 +74,8 @@ public final class ByteArrayBuilder {
 
         final int capacity = (int) (in.remaining() * encoder.averageBytesPerChar());
         ByteBuffer out = ensureFreeCapacity(buffer, capacity);
-        for (;;) {
-            CoderResult result = in.hasRemaining() ? encoder.encode(in, out, true) : CoderResult.UNDERFLOW;
+        while (in.hasRemaining()) {
+            CoderResult result = encoder.encode(in, out, true);
             if (result.isError()) {
                 result.throwException();
             }
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestByteArrayBuilder.java b/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestByteArrayBuilder.java
index 785afb2..d43709f 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestByteArrayBuilder.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/utils/TestByteArrayBuilder.java
@@ -96,6 +96,7 @@ public class TestByteArrayBuilder {
         buffer.append("bcd");
         buffer.append("e");
         buffer.append("f");
+        buffer.append("");
         buffer.append((String) null);
         buffer.append((char[]) null);