Skip to content

Commit b8a3655

Browse files
authored
AVRO-4110: Double Values Fail when using Min/Max (#3292)
1 parent 00a0774 commit b8a3655

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

lang/java/avro/src/main/java/org/apache/avro/generic/PrimitivesArrays.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ public Double set(int i, Double o) {
623623
if (o == null) {
624624
return null;
625625
}
626-
return this.set(i, o.floatValue());
626+
return this.set(i, o.doubleValue());
627627
}
628628

629629
public double set(int i, double o) {

lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,19 @@ void doubleArray() {
276276
for (int i = 1; i <= 100; i++) {
277277
Assertions.assertEquals((101 - i) * 3.0d, doubleArray.get(i - 1));
278278
}
279+
280+
doubleArray.add(Double.MAX_VALUE);
281+
doubleArray.add(Double.MIN_VALUE);
282+
Assertions.assertEquals(102, doubleArray.size());
283+
Assertions.assertEquals(Double.MAX_VALUE, doubleArray.get(100));
284+
Assertions.assertEquals(Double.MIN_VALUE, doubleArray.get(101));
285+
286+
// Flip the positions to make sure they still work
287+
doubleArray.set(101, Double.MAX_VALUE);
288+
doubleArray.set(100, Double.MIN_VALUE);
289+
Assertions.assertEquals(102, doubleArray.size());
290+
Assertions.assertEquals(Double.MAX_VALUE, doubleArray.get(101));
291+
Assertions.assertEquals(Double.MIN_VALUE, doubleArray.get(100));
279292
}
280293

281294
@Test

0 commit comments

Comments
 (0)