You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2020/06/30 14:16:46 UTC

[commons-codec] 10/18: Address code-review comments by @aherbert

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

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-codec.git

commit 065b10626510274312ff260b4ac1cd9fc964fa24
Author: Adam Retter <ad...@googlemail.com>
AuthorDate: Wed Jun 24 13:05:40 2020 +0200

    Address code-review comments by @aherbert
---
 .../org/apache/commons/codec/binary/Base16.java    |  8 +++---
 .../apache/commons/codec/binary/Base16Test.java    | 30 ++++++++++++----------
 2 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/apache/commons/codec/binary/Base16.java b/src/main/java/org/apache/commons/codec/binary/Base16.java
index 5db9043..86ba2cf 100644
--- a/src/main/java/org/apache/commons/codec/binary/Base16.java
+++ b/src/main/java/org/apache/commons/codec/binary/Base16.java
@@ -149,14 +149,14 @@ public class Base16 extends BaseNCodec {
     void decode(final byte[] data, int offset, final int length, final Context context) {
         if (context.eof || length < 0) {
             context.eof = true;
-            if (context.ibitWorkArea > 0) {
+            if (context.ibitWorkArea != 0) {
                 validateTrailingCharacter();
             }
             return;
         }
 
         final int dataLen = Math.min(data.length - offset, length);
-        final int availableChars = (context.ibitWorkArea > 0 ? 1 : 0) + dataLen;
+        final int availableChars = (context.ibitWorkArea != 0 ? 1 : 0) + dataLen;
 
         // small optimisation to short-cut the rest of this method when it is fed byte-by-byte
         if (availableChars == 1 && availableChars == dataLen) {
@@ -198,7 +198,7 @@ public class Base16 extends BaseNCodec {
 
     private int decodeOctet(final byte octet) {
         int decoded = -1;
-        if (octet >= 0 && octet < decodeTable.length) {
+        if ((octet & 0xff) < decodeTable.length) {
             decoded = decodeTable[octet];
         }
 
@@ -241,7 +241,7 @@ public class Base16 extends BaseNCodec {
      */
     @Override
     public boolean isInAlphabet(final byte octet) {
-        return octet >= 0 && octet < decodeTable.length && decodeTable[octet] != -1;
+        return (octet & 0xff) < decodeTable.length && decodeTable[octet] != -1;
     }
 
     /**
diff --git a/src/test/java/org/apache/commons/codec/binary/Base16Test.java b/src/test/java/org/apache/commons/codec/binary/Base16Test.java
index 577a842..0c06553 100644
--- a/src/test/java/org/apache/commons/codec/binary/Base16Test.java
+++ b/src/test/java/org/apache/commons/codec/binary/Base16Test.java
@@ -32,6 +32,7 @@ import java.util.Random;
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -116,8 +117,8 @@ public class Base16Test {
 
     @Test
     public void testConstructor_LowerCase() {
-        final Base16 Base16 = new Base16(true);
-        final byte[] encoded = Base16.encode(BaseNTestData.DECODED);
+        final Base16 base16 = new Base16(true);
+        final byte[] encoded = base16.encode(BaseNTestData.DECODED);
         final String expectedResult = Base16TestData.ENCODED_UTF8_LOWERCASE;
         final String result = StringUtils.newStringUtf8(encoded);
         assertEquals("new Base16(true)", expectedResult, result);
@@ -125,11 +126,11 @@ public class Base16Test {
 
     @Test
     public void testConstructor_LowerCase_DecodingPolicy() {
-        final Base16 Base16 = new Base16(false, CodecPolicy.STRICT);
-        final byte[] encoded = Base16.encode(BaseNTestData.DECODED);
+        final Base16 base16 = new Base16(false, CodecPolicy.STRICT);
+        final byte[] encoded = base16.encode(BaseNTestData.DECODED);
         final String expectedResult = Base16TestData.ENCODED_UTF8_UPPERCASE;
         final String result = StringUtils.newStringUtf8(encoded);
-        assertEquals("new Base16(false, CodecPolicy.STRICT)", result, expectedResult);
+        assertEquals("new base16(false, CodecPolicy.STRICT)", result, expectedResult);
     }
 
     /**
@@ -435,27 +436,27 @@ public class Base16Test {
 
     @Test
     public void testByteToStringVariations() throws DecoderException {
-        final Base16 Base16 = new Base16();
+        final Base16 base16 = new Base16();
         final byte[] b1 = StringUtils.getBytesUtf8("Hello World");
         final byte[] b2 = new byte[0];
         final byte[] b3 = null;
 
-        assertEquals("byteToString Hello World", "48656C6C6F20576F726C64", Base16.encodeToString(b1));
+        assertEquals("byteToString Hello World", "48656C6C6F20576F726C64", base16.encodeToString(b1));
         assertEquals("byteToString static Hello World", "48656C6C6F20576F726C64", StringUtils.newStringUtf8(new Base16().encode(b1)));
-        assertEquals("byteToString \"\"", "", Base16.encodeToString(b2));
+        assertEquals("byteToString \"\"", "", base16.encodeToString(b2));
         assertEquals("byteToString static \"\"", "", StringUtils.newStringUtf8(new Base16().encode(b2)));
-        assertEquals("byteToString null", null, Base16.encodeToString(b3));
+        assertEquals("byteToString null", null, base16.encodeToString(b3));
         assertEquals("byteToString static null", null, StringUtils.newStringUtf8(new Base16().encode(b3)));
     }
 
     @Test
     public void testStringToByteVariations() throws DecoderException {
-        final Base16 Base16 = new Base16();
+        final Base16 base16 = new Base16();
         final String s1 = "48656C6C6F20576F726C64";
         final String s2 = "";
         final String s3 = null;
 
-        assertEquals("StringToByte Hello World", "Hello World", StringUtils.newStringUtf8(Base16.decode(s1)));
+        assertEquals("StringToByte Hello World", "Hello World", StringUtils.newStringUtf8(base16.decode(s1)));
         assertEquals("StringToByte Hello World", "Hello World",
                 StringUtils.newStringUtf8((byte[]) new Base16().decode((Object) s1)));
         assertEquals("StringToByte static Hello World", "Hello World",
@@ -587,22 +588,23 @@ public class Base16Test {
     @Test
     public void testDecodeSingleBytesOptimisation() {
         final BaseNCodec.Context context = new BaseNCodec.Context();
-        context.ibitWorkArea = 0;
+        assertEquals(0, context.ibitWorkArea);
+        assertNull(context.buffer);
 
         final byte[] data = new byte[1];
 
         final Base16 b16 = new Base16();
-        assertEquals(0, context.ibitWorkArea);
 
         data[0] = (byte) 'E';
         b16.decode(data, 0, 1, context);
         assertEquals(15, context.ibitWorkArea);
+        assertNull(context.buffer);
 
         data[0] = (byte) 'F';
         b16.decode(data, 0, 1, context);
         assertEquals(0, context.ibitWorkArea);
 
-        assertEquals(-17, context.buffer[0]);
+        assertEquals((byte)0xEF, context.buffer[0]);
     }
 
     @Test(expected=IllegalArgumentException.class)