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-dbcp.git
commit 7ccaa5abed5d3adb8036c7f53a4b6f2bb6eee004 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Mon May 26 11:10:39 2025 -0400 Add internal org.apache.commons.dbcp2.datasources.CharArray.clear() --- .../org/apache/commons/dbcp2/datasources/CharArray.java | 14 +++++++++++++- .../apache/commons/dbcp2/datasources/CharArrayTest.java | 8 ++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/dbcp2/datasources/CharArray.java b/src/main/java/org/apache/commons/dbcp2/datasources/CharArray.java index cd1d5c0c..480e9437 100644 --- a/src/main/java/org/apache/commons/dbcp2/datasources/CharArray.java +++ b/src/main/java/org/apache/commons/dbcp2/datasources/CharArray.java @@ -33,8 +33,8 @@ import org.apache.commons.dbcp2.Utils; */ final class CharArray implements Serializable { - private static final long serialVersionUID = 1L; static final CharArray NULL = new CharArray((char[]) null); + private static final long serialVersionUID = 1L; private final char[] chars; CharArray(final char[] chars) { @@ -54,6 +54,18 @@ final class CharArray implements Serializable { return Utils.toString(chars); } + /** + * Clears the content of the char array. + * + * @return {@code this} instance. + */ + CharArray clear() { + if (chars != null) { + Arrays.fill(chars, '\0'); + } + return this; + } + @Override public boolean equals(final Object obj) { if (this == obj) { diff --git a/src/test/java/org/apache/commons/dbcp2/datasources/CharArrayTest.java b/src/test/java/org/apache/commons/dbcp2/datasources/CharArrayTest.java index c722d7f2..0db2d824 100644 --- a/src/test/java/org/apache/commons/dbcp2/datasources/CharArrayTest.java +++ b/src/test/java/org/apache/commons/dbcp2/datasources/CharArrayTest.java @@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import org.junit.jupiter.api.Test; @@ -44,6 +45,13 @@ public class CharArrayTest { assertArrayEquals("foo".toCharArray(), new CharArray("foo").get()); } + @Test + public void testClear() { + assertNull(new CharArray((String) null).clear().get()); + assertArrayEquals("".toCharArray(), new CharArray("").clear().get()); + assertArrayEquals("\0\0\0".toCharArray(), new CharArray("foo").clear().get()); + } + @Test public void testHashCode() { assertEquals(new CharArray("foo").hashCode(), new CharArray("foo").hashCode());