Skip to content

Commit 89021a8

Browse files
committed
Merge branch '2.19' into 2.20
2 parents 03b5188 + d4046b9 commit 89021a8

5 files changed

Lines changed: 18 additions & 4 deletions

File tree

‎release-notes/CREDITS-2.x‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,6 +1915,8 @@ Fawzi Essam (@iifawzi)
19151915
Omkhar Arasaratnam (@omkhar)
19161916
* Reported #5950: Improve `UUIDeserializer` error handling
19171917
(2.18.8)
1918+
* Reported #5951: Improve `InetSocketAddress` deserialization
1919+
(2.18.8)
19181920
19191921
Liam Feid (@fxshlein)
19201922
* Contributed #1467: Support `@JsonUnwrapped` with `@JsonCreator`

‎release-notes/VERSION-2.x‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ No changes since 2.19.2
187187

188188
#5950: Improve `UUIDeserializer` error handling
189189
(reported by Omkhar A)
190+
#5951: Improve `InetSocketAddress` deserialization
191+
(reported by Omkhar A)
190192

191193
2.18.7 (24-Apr-2026)
192194
2.18.6 (22-Feb-2026)

‎src/main/java/com/fasterxml/jackson/databind/deser/std/FromStringDeserializer.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,8 @@ private Locale _deSerializeBCP47Locale(String value, int ix, String first, Strin
492492
}
493493

494494
protected InetSocketAddress _inetSocketAddress(String host, int port) {
495-
return new InetSocketAddress(host, port);
495+
// 05-May-2026, tatu: [databind#5951] Prevent DNS lookup:
496+
return InetSocketAddress.createUnresolved(host, port);
496497
}
497498
}
498499

‎src/test/java/com/fasterxml/jackson/databind/deser/jdk/JDKStringLikeTypeDeserTest.java‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,15 +183,15 @@ public void testInetAddress() throws IOException
183183
public void testInetSocketAddress() throws IOException
184184
{
185185
InetSocketAddress address = MAPPER.readValue(q("127.0.0.1"), InetSocketAddress.class);
186-
assertEquals("127.0.0.1", address.getAddress().getHostAddress());
186+
assertEquals("127.0.0.1", address.getHostName());
187187

188188
InetSocketAddress ip6 = MAPPER.readValue(
189189
q("2001:db8:85a3:8d3:1319:8a2e:370:7348"), InetSocketAddress.class);
190-
assertEquals("2001:db8:85a3:8d3:1319:8a2e:370:7348", ip6.getAddress().getHostAddress());
190+
assertEquals("2001:db8:85a3:8d3:1319:8a2e:370:7348", ip6.getHostName());
191191

192192
InetSocketAddress ip6port = MAPPER.readValue(
193193
q("[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443"), InetSocketAddress.class);
194-
assertEquals("2001:db8:85a3:8d3:1319:8a2e:370:7348", ip6port.getAddress().getHostAddress());
194+
assertEquals("[2001:db8:85a3:8d3:1319:8a2e:370:7348]", ip6port.getHostName());
195195
assertEquals(443, ip6port.getPort());
196196

197197
// should we try resolving host names? That requires connectivity...
@@ -203,6 +203,11 @@ public void testInetSocketAddress() throws IOException
203203
address = MAPPER.readValue(q(HOST_AND_PORT), InetSocketAddress.class);
204204
assertEquals(HOST, address.getHostName());
205205
assertEquals(80, address.getPort());
206+
207+
// [databind#5951]: should NOT resolve address
208+
address = MAPPER.readValue(q("localhost:9999"), InetSocketAddress.class);
209+
assertTrue(address.isUnresolved(),
210+
"`InetSocketAddress` resolved localhost during deserialization: "+ address);
206211
}
207212

208213
@Test

‎src/test/java/com/fasterxml/jackson/databind/ser/jdk/JDKTypeSerializationTest.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,12 @@ public void testInetSocketAddress() throws IOException
126126
{
127127
assertEquals(q("127.0.0.1:8080"),
128128
MAPPER.writeValueAsString(new InetSocketAddress("127.0.0.1", 8080)));
129+
assertEquals(q("127.0.0.1:8080"),
130+
MAPPER.writeValueAsString(InetSocketAddress.createUnresolved("127.0.0.1", 8080)));
129131
assertEquals(q("google.com:6667"),
130132
MAPPER.writeValueAsString(new InetSocketAddress("google.com", 6667)));
133+
assertEquals(q("google.com:6667"),
134+
MAPPER.writeValueAsString(InetSocketAddress.createUnresolved("google.com", 6667)));
131135
assertEquals(q("[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443"),
132136
MAPPER.writeValueAsString(new InetSocketAddress("2001:db8:85a3:8d3:1319:8a2e:370:7348", 443)));
133137
}

0 commit comments

Comments
 (0)