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

opwvhk pushed a commit to branch branch-1.12
in repository https://gitbox.apache.org/repos/asf/avro.git

commit ce6dad81055a6890200e1706df1767c7af76d7e9
Author: rdifrango <ron.difra...@gmail.com>
AuthorDate: Fri May 30 10:18:35 2025 -0400

    AVRO-4110: Double Values Fail when using Min/Max (#3292)
    
    (cherry picked from commit b8a3655fef9901e3d043e830f6ff6fb5f543fda7)
---
 .../main/java/org/apache/avro/generic/PrimitivesArrays.java |  2 +-
 .../java/org/apache/avro/generic/PrimitivesArraysTest.java  | 13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/lang/java/avro/src/main/java/org/apache/avro/generic/PrimitivesArrays.java 
b/lang/java/avro/src/main/java/org/apache/avro/generic/PrimitivesArrays.java
index 87be036468..6107ad382d 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/generic/PrimitivesArrays.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/generic/PrimitivesArrays.java
@@ -623,7 +623,7 @@ public class PrimitivesArrays {
       if (o == null) {
         return null;
       }
-      return this.set(i, o.floatValue());
+      return this.set(i, o.doubleValue());
     }
 
     public double set(int i, double o) {
diff --git 
a/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java
 
b/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java
index 7d199bf92c..ad83c6ae14 100644
--- 
a/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java
+++ 
b/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java
@@ -276,5 +276,18 @@ class PrimitivesArraysTest {
     for (int i = 1; i <= 100; i++) {
       Assertions.assertEquals((101 - i) * 3.0d, doubleArray.get(i - 1));
     }
+
+    doubleArray.add(Double.MAX_VALUE);
+    doubleArray.add(Double.MIN_VALUE);
+    Assertions.assertEquals(102, doubleArray.size());
+    Assertions.assertEquals(Double.MAX_VALUE, doubleArray.get(100));
+    Assertions.assertEquals(Double.MIN_VALUE, doubleArray.get(101));
+
+    // Flip the positions to make sure they still work
+    doubleArray.set(101, Double.MAX_VALUE);
+    doubleArray.set(100, Double.MIN_VALUE);
+    Assertions.assertEquals(102, doubleArray.size());
+    Assertions.assertEquals(Double.MAX_VALUE, doubleArray.get(101));
+    Assertions.assertEquals(Double.MIN_VALUE, doubleArray.get(100));
   }
 }

Reply via email to