You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/02/22 18:59:35 UTC

[commons-codec] branch master updated: Validate byte and string. (#78)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 297f04d  Validate byte and string. (#78)
297f04d is described below

commit 297f04da01e0ae2c18afc3a3667313adbf716fbe
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Tue Feb 22 19:59:30 2022 +0100

    Validate byte and string. (#78)
---
 .../org/apache/commons/codec/binary/Base64.java    |  2 +-
 .../apache/commons/codec/binary/BaseNCodec.java    |  6 +++---
 .../apache/commons/codec/binary/BinaryCodec.java   |  4 +++-
 .../apache/commons/codec/language/Caverphone2.java |  4 +++-
 .../commons/codec/language/SoundexUtils.java       | 22 +++++++++++++++++++++-
 5 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/apache/commons/codec/binary/Base64.java b/src/main/java/org/apache/commons/codec/binary/Base64.java
index d40b3d4..616fe77 100644
--- a/src/main/java/org/apache/commons/codec/binary/Base64.java
+++ b/src/main/java/org/apache/commons/codec/binary/Base64.java
@@ -235,7 +235,7 @@ public class Base64 extends BaseNCodec {
      */
     public static byte[] encodeBase64(final byte[] binaryData, final boolean isChunked,
                                       final boolean urlSafe, final int maxResultSize) {
-        if (binaryData == null || binaryData.length == 0) {
+        if (BinaryCodec.isEmpty(binaryData)) {
             return binaryData;
         }
 
diff --git a/src/main/java/org/apache/commons/codec/binary/BaseNCodec.java b/src/main/java/org/apache/commons/codec/binary/BaseNCodec.java
index b22f2a4..6595c0b 100644
--- a/src/main/java/org/apache/commons/codec/binary/BaseNCodec.java
+++ b/src/main/java/org/apache/commons/codec/binary/BaseNCodec.java
@@ -427,7 +427,7 @@ public abstract class BaseNCodec implements BinaryEncoder, BinaryDecoder {
      */
     @Override
     public byte[] decode(final byte[] pArray) {
-        if (pArray == null || pArray.length == 0) {
+        if (BinaryCodec.isEmpty(pArray)) {
             return pArray;
         }
         final Context context = new Context();
@@ -483,7 +483,7 @@ public abstract class BaseNCodec implements BinaryEncoder, BinaryDecoder {
      */
     @Override
     public byte[] encode(final byte[] pArray) {
-        if (pArray == null || pArray.length == 0) {
+        if (BinaryCodec.isEmpty(pArray)) {
             return pArray;
         }
         return encode(pArray, 0, pArray.length);
@@ -503,7 +503,7 @@ public abstract class BaseNCodec implements BinaryEncoder, BinaryDecoder {
      * @since 1.11
      */
     public byte[] encode(final byte[] pArray, final int offset, final int length) {
-        if (pArray == null || pArray.length == 0) {
+        if (BinaryCodec.isEmpty(pArray)) {
             return pArray;
         }
         final Context context = new Context();
diff --git a/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java b/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
index b67ad4b..0c78e6d 100644
--- a/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
+++ b/src/main/java/org/apache/commons/codec/binary/BinaryCodec.java
@@ -136,8 +136,10 @@ public class BinaryCodec implements BinaryDecoder, BinaryEncoder {
      * @param array
      *            the source array
      * @return {@code true} if the given array is {@code null} or empty (size 0.)
+     *
+     * @since 1.16 change visibility to public
      */
-    private static boolean isEmpty(final byte[] array) {
+    static boolean isEmpty(final byte[] array) {
         return array == null || array.length == 0;
     }
 
diff --git a/src/main/java/org/apache/commons/codec/language/Caverphone2.java b/src/main/java/org/apache/commons/codec/language/Caverphone2.java
index e11728a..1256d90 100644
--- a/src/main/java/org/apache/commons/codec/language/Caverphone2.java
+++ b/src/main/java/org/apache/commons/codec/language/Caverphone2.java
@@ -17,6 +17,8 @@
 
 package org.apache.commons.codec.language;
 
+import org.apache.commons.codec.binary.StringUtils;
+
 /**
  * Encodes a string into a Caverphone 2.0 value.
  *
@@ -43,7 +45,7 @@ public class Caverphone2 extends AbstractCaverphone {
     @Override
     public String encode(final String source) {
         String txt = source;
-        if (txt == null || txt.isEmpty()) {
+        if (SoundexUtils.isEmpty(txt)) {
             return TEN_1;
         }
 
diff --git a/src/main/java/org/apache/commons/codec/language/SoundexUtils.java b/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
index 16dee9b..39282d1 100644
--- a/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
+++ b/src/main/java/org/apache/commons/codec/language/SoundexUtils.java
@@ -19,6 +19,7 @@ package org.apache.commons.codec.language;
 
 import org.apache.commons.codec.EncoderException;
 import org.apache.commons.codec.StringEncoder;
+import org.apache.commons.codec.binary.StringUtils;
 
 /**
  * Utility methods for {@link Soundex} and {@link RefinedSoundex} classes.
@@ -38,7 +39,7 @@ final class SoundexUtils {
      * @return A clean String.
      */
     static String clean(final String str) {
-        if (str == null || str.isEmpty()) {
+        if (isEmpty(str)) {
             return str;
         }
         final int len = str.length();
@@ -120,4 +121,23 @@ final class SoundexUtils {
         return diff;
     }
 
+    /**
+     * <p>Checks if a CharSequence is empty ("") or null.</p>
+     *
+     * <pre>
+     * StringUtils.isEmpty(null)      = true
+     * StringUtils.isEmpty("")        = true
+     * StringUtils.isEmpty(" ")       = false
+     * StringUtils.isEmpty("bob")     = false
+     * StringUtils.isEmpty("  bob  ") = false
+     * </pre>
+     *
+     * @param cs  the CharSequence to check, may be null
+     * @return {@code true} if the CharSequence is empty or null
+     * @since 1.16
+     */
+    static boolean isEmpty(final CharSequence cs) {
+        return cs == null || cs.length() == 0;
+    }
+
 }