Skip to content

Commit ac1c279

Browse files
authored
Merge branch '2.x' into 2.x
2 parents 5599e79 + c293ace commit ac1c279

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
<version.android.sdk.signature>0.12.0</version.android.sdk.signature>
5555

5656
<version.bytebuddy>1.15.10</version.bytebuddy>
57+
58+
<!-- 25-Sep-2025, tatu: Last 4.x Mockito: 5.x requires JDK 11 so
59+
cannot upgrade further
60+
-->
5761
<version.mockito>4.11.0</version.mockito>
5862

5963
<!-- 07-Apr-2025, tatu: For some reason, release fails due to missing

src/test/java/com/fasterxml/jackson/databind/convert/CoerceFloatToIntTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fasterxml.jackson.databind.convert;
22

3+
import java.math.BigDecimal;
34
import java.math.BigInteger;
45
import java.util.*;
56
import java.util.concurrent.atomic.AtomicLong;
@@ -12,6 +13,7 @@
1213
import com.fasterxml.jackson.databind.cfg.CoercionInputShape;
1314
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
1415
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
16+
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
1517
import com.fasterxml.jackson.databind.type.LogicalType;
1618

1719
import static org.junit.jupiter.api.Assertions.*;
@@ -79,6 +81,40 @@ public void testLegacyDoubleToIntCoercion() throws Exception
7981
assertEquals(95L, biggie.longValue());
8082
}
8183

84+
// [databind#5319]
85+
@Test
86+
public void testLegacyDoubleToIntCoercionJsonNode() throws Exception
87+
{
88+
final ObjectMapper mapperAllow = jsonMapperBuilder()
89+
.enable(DeserializationFeature.ACCEPT_FLOAT_AS_INT)
90+
.build();
91+
final JsonNodeFactory nodeF = mapperAllow.getNodeFactory();
92+
93+
// First Integer
94+
assertEquals(1,
95+
mapperAllow.treeToValue(nodeF.numberNode(1.25), Integer.class));
96+
assertEquals(-2,
97+
mapperAllow.treeToValue(nodeF.numberNode(-2.5f), Integer.class));
98+
assertEquals(3,
99+
mapperAllow.treeToValue(nodeF.numberNode(BigDecimal.valueOf(3.75)), Integer.class));
100+
101+
// Second Long
102+
assertEquals(1L,
103+
mapperAllow.treeToValue(nodeF.numberNode(1.25), Long.class));
104+
assertEquals(-2L,
105+
mapperAllow.treeToValue(nodeF.numberNode(-2.5f), Long.class));
106+
assertEquals(3L,
107+
mapperAllow.treeToValue(nodeF.numberNode(BigDecimal.valueOf(3.75)), Long.class));
108+
109+
// Last BigInteger
110+
assertEquals(BigInteger.valueOf(1L),
111+
mapperAllow.treeToValue(nodeF.numberNode(1.25), BigInteger.class));
112+
assertEquals(BigInteger.valueOf(-2L),
113+
mapperAllow.treeToValue(nodeF.numberNode(-2.5f), BigInteger.class));
114+
assertEquals(BigInteger.valueOf(3L),
115+
mapperAllow.treeToValue(nodeF.numberNode(BigDecimal.valueOf(3.75)), BigInteger.class));
116+
}
117+
82118
@Test
83119
public void testLegacyFailDoubleToInt() throws Exception
84120
{

0 commit comments

Comments
 (0)