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-lang.git

commit 6622a46857509a8920a3f085dbca007286c703ac
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Jun 14 13:23:23 2025 -0400

    Fix generics in org.apache.commons.lang3.stream.Streams.toArray(Class)
    signature
---
 src/changes/changes.xml                                       |  3 ++-
 src/main/java/org/apache/commons/lang3/stream/Streams.java    |  2 +-
 .../java/org/apache/commons/lang3/stream/StreamsTest.java     | 11 +++++++++++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 762653c37..43fd65b1f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -92,7 +92,8 @@ The <action> type attribute can be add,update,fix,remove.
     <action issue="LANG-1773" type="fix" dev="ggregory" due-to="Éamonn 
McManus, Gary Gregory">Apache Commons Lang no longer builds on Android 
#1381.</action>
     <action issue="LANG-1772" type="fix" dev="ggregory" due-to="James Winters, 
Piotr P. Karwasz, Gary Gregory">Restrict size of cache to prevent overflow 
errors #1379.</action>
     <action issue="LANG-1772" type="fix" dev="ggregory" due-to="Gary 
Gregory">Reimplement org.apache.commons.lang3.ClassUtils.hierarchy(Class, 
Interfaces) using an AtomicReference.</action>
-    <action                   type="fix" dev="ggregory" due-to="Ken 
Dombeck">Correct Javadoc code examples in DiffBuilder and ReflectionDiffBuilder 
#1400.</action>
+    <action                   type="fix" dev="ggregory" due-to="Ken 
Dombeck">Fix Javadoc code examples in DiffBuilder and ReflectionDiffBuilder 
#1400.</action>
+    <action                   type="fix" dev="ggregory" due-to="Gary 
Gregory">Fix generics in org.apache.commons.lang3.stream.Streams.toArray(Class) 
signature.</action>
     <!-- ADD -->
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add Strings and refactor StringUtils.</action>
     <action issue="LANG-1747" type="add" dev="ggregory" due-to="Oliver B. 
Fischer, Gary Gregory">Add StopWatch.run([Failable]Runnable) and 
get([Failable]Supplier).</action>
diff --git a/src/main/java/org/apache/commons/lang3/stream/Streams.java 
b/src/main/java/org/apache/commons/lang3/stream/Streams.java
index 8679390ce..1be9b6f8d 100644
--- a/src/main/java/org/apache/commons/lang3/stream/Streams.java
+++ b/src/main/java/org/apache/commons/lang3/stream/Streams.java
@@ -838,7 +838,7 @@ private static <T> Stream<T> streamOf(final T value) {
      * @param elementType Type of an element in the array.
      * @return a {@link Collector} which collects all the input elements into 
an array, in encounter order
      */
-    public static <T> Collector<T, ?, T[]> toArray(final Class<T> elementType) 
{
+    public static <T> Collector<T, List<T>, T[]> toArray(final Class<T> 
elementType) {
         return new ArrayCollector<>(elementType);
     }
 
diff --git a/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java 
b/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
index f3b3dda61..a4e153970 100644
--- a/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
+++ b/src/test/java/org/apache/commons/lang3/stream/StreamsTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.lang3.stream;
 
+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.assertNotNull;
@@ -125,6 +126,16 @@ public Stream<DynamicTest> simpleStreamForEachFailing() {
             }));
     }
 
+    @Test
+    void testArrayCollectorCombiner() {
+        final String[] expected = { "A1", "B1" };
+        assertArrayEquals(expected, Stream.of("A", 
"B").collect(Collectors.mapping(s -> s + "1", Streams.toArray(String.class))));
+        assertArrayEquals(expected, Streams.failableStream("A", 
"B").collect(Collectors.mapping(s -> s + "1", Streams.toArray(String.class))));
+        final List<String> left = new ArrayList<>();
+        left.add("a");
+        assertEquals(Arrays.asList("a", "b", "c"), 
Streams.toArray(String.class).combiner().apply(left, Arrays.asList("b", "c")));
+    }
+
     @SuppressWarnings("deprecation")
     @Test
     void testDeprefcatedCopnstructor() {

Reply via email to