Address deprecation warnings

This commit addresses warnings across the code base related to:

- internal and public deprecations in Spring Framework
- deprecated Locale constructors
- deprecated URL constructors
- deprecated Thread#getId method
This commit is contained in:
Sam Brannen
2026-06-27 18:08:53 +02:00
parent 996b337f37
commit 78f05d8f8e
30 changed files with 100 additions and 65 deletions
@@ -17,6 +17,7 @@
package org.springframework.mock.web;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
@@ -548,7 +549,7 @@ class MockHttpServletRequestTests {
@Test
void getRequestURLWithIpv6AddressViaServerNameWithoutPort() throws Exception {
request.setServerName("[::ffff:abcd:abcd]");
URL url = new java.net.URL(request.getRequestURL().toString());
URL url = URI.create(request.getRequestURL().toString()).toURL();
assertThat(url).asString().isEqualTo("http://[::ffff:abcd:abcd]");
}
@@ -556,7 +557,7 @@ class MockHttpServletRequestTests {
void getRequestURLWithIpv6AddressViaServerNameWithPort() throws Exception {
request.setServerName("[::ffff:abcd:abcd]");
request.setServerPort(9999);
URL url = new java.net.URL(request.getRequestURL().toString());
URL url = URI.create(request.getRequestURL().toString()).toURL();
assertThat(url).asString().isEqualTo("http://[::ffff:abcd:abcd]:9999");
}
@@ -571,14 +572,14 @@ class MockHttpServletRequestTests {
@Test
void getRequestURLWithIpv6AddressViaHostHeaderWithoutPort() throws Exception {
request.addHeader(HOST, "[::ffff:abcd:abcd]");
URL url = new java.net.URL(request.getRequestURL().toString());
URL url = URI.create(request.getRequestURL().toString()).toURL();
assertThat(url).asString().isEqualTo("http://[::ffff:abcd:abcd]");
}
@Test
void getRequestURLWithIpv6AddressViaHostHeaderWithPort() throws Exception {
request.addHeader(HOST, "[::ffff:abcd:abcd]:9999");
URL url = new java.net.URL(request.getRequestURL().toString());
URL url = URI.create(request.getRequestURL().toString()).toURL();
assertThat(url).asString().isEqualTo("http://[::ffff:abcd:abcd]:9999");
}
@@ -17,7 +17,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URI;
import org.htmlunit.WebRequest;
@@ -32,11 +32,11 @@ import static org.assertj.core.api.Assertions.assertThat;
abstract class AbstractWebRequestMatcherTests {
protected void assertMatches(WebRequestMatcher matcher, String url) throws MalformedURLException {
assertThat(matcher.matches(new WebRequest(new URL(url)))).isTrue();
assertThat(matcher.matches(new WebRequest(URI.create(url).toURL()))).isTrue();
}
protected void assertDoesNotMatch(WebRequestMatcher matcher, String url) throws MalformedURLException {
assertThat(matcher.matches(new WebRequest(new URL(url)))).isFalse();
assertThat(matcher.matches(new WebRequest(URI.create(url).toURL()))).isFalse();
}
}
@@ -16,7 +16,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.net.URL;
import java.net.URI;
import java.util.Collections;
import org.htmlunit.HttpWebConnection;
@@ -79,7 +79,7 @@ class DelegatingWebConnectionTests {
@BeforeEach
void setup() throws Exception {
request = new WebRequest(new URL("http://localhost/"));
request = new WebRequest(URI.create("http://localhost/").toURL());
WebResponseData data = new WebResponseData("".getBytes(UTF_8), 200, "", Collections.emptyList());
expectedResponse = new WebResponse(data, request, 100L);
webConnection = new DelegatingWebConnection(defaultConnection,
@@ -17,7 +17,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.HashMap;
@@ -70,7 +70,7 @@ class HtmlUnitRequestBuilderTests {
@BeforeEach
void setup() throws Exception {
webRequest = new WebRequest(new URL("https://example.com/test/this/here"));
webRequest = new WebRequest(URI.create("https://example.com/test/this/here").toURL());
webRequest.setHttpMethod(HttpMethod.GET);
requestBuilder = new HtmlUnitRequestBuilder(sessions, webClient, webRequest);
}
@@ -173,7 +173,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestContextPathUsesNoFirstSegmentWithDefault() throws MalformedURLException {
webRequest.setUrl(new URL("https://example.com/"));
webRequest.setUrl(URI.create("https://example.com/").toURL());
String contextPath = requestBuilder.buildRequest(servletContext).getContextPath();
assertThat(contextPath).isEmpty();
@@ -279,6 +279,7 @@ class HtmlUnitRequestBuilderTests {
}
@Test
@SuppressWarnings("deprecation") // for Locale constructors on JDK 19
void buildRequestLocaleDa() {
webRequest.setAdditionalHeader("Accept-Language", "da");
@@ -288,6 +289,7 @@ class HtmlUnitRequestBuilderTests {
}
@Test
@SuppressWarnings("deprecation") // for Locale constructors on JDK 19
void buildRequestLocaleEnGbQ08() {
webRequest.setAdditionalHeader("Accept-Language", "en-gb;q=0.8");
@@ -297,6 +299,7 @@ class HtmlUnitRequestBuilderTests {
}
@Test
@SuppressWarnings("deprecation") // for Locale constructors on JDK 19
void buildRequestLocaleEnQ07() {
webRequest.setAdditionalHeader("Accept-Language", "en");
@@ -324,6 +327,7 @@ class HtmlUnitRequestBuilderTests {
}
@Test
@SuppressWarnings("deprecation") // for Locale constructors on JDK 19
void buildRequestLocaleMulti() {
webRequest.setAdditionalHeader("Accept-Language", "en-gb;q=0.8, da, en;q=0.7");
@@ -353,7 +357,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapFromSingleQueryParam() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name=value"));
webRequest.setUrl(URI.create("https://example.com/example/?name=value").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -364,7 +368,7 @@ class HtmlUnitRequestBuilderTests {
// SPR-14177
@Test
void buildRequestParameterMapDecodesParameterName() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?row%5B0%5D=value"));
webRequest.setUrl(URI.create("https://example.com/example/?row%5B0%5D=value").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -374,7 +378,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapDecodesParameterValue() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name=row%5B0%5D"));
webRequest.setUrl(URI.create("https://example.com/example/?name=row%5B0%5D").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -384,7 +388,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapFromSingleQueryParamWithoutValueAndWithoutEqualsSign() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name"));
webRequest.setUrl(URI.create("https://example.com/example/?name").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -394,7 +398,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapFromSingleQueryParamWithoutValueButWithEqualsSign() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name="));
webRequest.setUrl(URI.create("https://example.com/example/?name=").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -404,7 +408,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapFromSingleQueryParamWithValueSetToEncodedSpace() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name=%20"));
webRequest.setUrl(URI.create("https://example.com/example/?name=%20").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -414,7 +418,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestParameterMapFromMultipleQueryParams() throws Exception {
webRequest.setUrl(new URL("https://example.com/example/?name=value&param2=value+2"));
webRequest.setUrl(URI.create("https://example.com/example/?name=value&param2=value+2").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -432,7 +436,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestPathInfoNull() throws Exception {
webRequest.setUrl(new URL("https://example.com/example"));
webRequest.setUrl(URI.create("https://example.com/example").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -441,7 +445,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestAndAntPathRequestMatcher() throws Exception {
webRequest.setUrl(new URL("https://example.com/app/login/authenticate"));
webRequest.setUrl(URI.create("https://example.com/app/login/authenticate").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -460,7 +464,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestQueryWithSingleQueryParam() throws Exception {
String expectedQuery = "param=value";
webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery));
webRequest.setUrl(URI.create("https://example.com/example?" + expectedQuery).toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -470,7 +474,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestQueryWithSingleQueryParamWithoutValueAndWithoutEqualsSign() throws Exception {
String expectedQuery = "param";
webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery));
webRequest.setUrl(URI.create("https://example.com/example?" + expectedQuery).toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -480,7 +484,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestQueryWithSingleQueryParamWithoutValueButWithEqualsSign() throws Exception {
String expectedQuery = "param=";
webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery));
webRequest.setUrl(URI.create("https://example.com/example?" + expectedQuery).toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -490,7 +494,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestQueryWithSingleQueryParamWithValueSetToEncodedSpace() throws Exception {
String expectedQuery = "param=%20";
webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery));
webRequest.setUrl(URI.create("https://example.com/example?" + expectedQuery).toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -500,7 +504,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestQueryWithMultipleQueryParams() throws Exception {
String expectedQuery = "param1=value1&param2=value2";
webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery));
webRequest.setUrl(URI.create("https://example.com/example?" + expectedQuery).toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -551,7 +555,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpAndDefaultPort() throws Exception {
webRequest.setUrl(new URL("http://localhost/test"));
webRequest.setUrl(URI.create("http://localhost/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "http://localhost/test", 80, false);
@@ -559,7 +563,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpAndExplicitDefaultPort() throws Exception {
webRequest.setUrl(new URL("http://localhost:80/test"));
webRequest.setUrl(URI.create("http://localhost:80/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "http://localhost/test", 80, false);
@@ -567,13 +571,13 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpAndExplicitPort() throws Exception {
webRequest.setUrl(new URL("http://localhost:8081/test"));
webRequest.setUrl(URI.create("http://localhost:8081/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "http://localhost:8081/test", 8081, false);
// Unlikely scheme/port combination:
webRequest.setUrl(new URL("http://localhost:443/test"));
webRequest.setUrl(URI.create("http://localhost:443/test").toURL());
request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "http://localhost:443/test", 443, false);
@@ -581,7 +585,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpsAndDefaultPort() throws Exception {
webRequest.setUrl(new URL("https://localhost/test"));
webRequest.setUrl(URI.create("https://localhost/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "https://localhost/test", 443, true);
@@ -589,7 +593,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpsAndExplicitDefaultPort() throws Exception {
webRequest.setUrl(new URL("https://localhost:443/test"));
webRequest.setUrl(URI.create("https://localhost:443/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "https://localhost/test", 443, true);
@@ -597,13 +601,13 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestWithSchemeHttpsAndExplicitPort() throws Exception {
webRequest.setUrl(new URL("https://localhost:8443/test"));
webRequest.setUrl(URI.create("https://localhost:8443/test").toURL());
var request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "https://localhost:8443/test", 8443, true);
// Unlikely scheme/port combination:
webRequest.setUrl(new URL("https://localhost:80/test"));
webRequest.setUrl(URI.create("https://localhost:80/test").toURL());
request = requestBuilder.buildRequest(servletContext);
assertUrlAndPorts(request, "https://localhost:80/test", 80, true);
@@ -611,7 +615,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestSchemeHttp() throws Exception {
webRequest.setUrl(new URL("http://localhost:80/test/this/here"));
webRequest.setUrl(URI.create("http://localhost:80/test/this/here").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
assertThat(actualRequest.getScheme()).isEqualTo("http");
@@ -619,7 +623,7 @@ class HtmlUnitRequestBuilderTests {
@Test
void buildRequestSchemeHttps() throws Exception {
webRequest.setUrl(new URL("https://example.com/"));
webRequest.setUrl(URI.create("https://example.com/").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
assertThat(actualRequest.getScheme()).isEqualTo("https");
@@ -648,7 +652,7 @@ class HtmlUnitRequestBuilderTests {
@Test // gh-27837
void buildRequestServletPathWithEncodedUrl() throws Exception {
webRequest.setUrl(new URL("http://localhost/test/Fr%C3%BChling%20Sommer%20Herbst%20Winter"));
webRequest.setUrl(URI.create("http://localhost/test/Fr%C3%BChling%20Sommer%20Herbst%20Winter").toURL());
MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext);
@@ -17,7 +17,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.io.IOException;
import java.net.URL;
import java.net.URI;
import jakarta.servlet.http.HttpServletRequest;
import org.htmlunit.WebClient;
@@ -134,7 +134,7 @@ class MockMvcConnectionBuilderSupportTests {
}
private WebResponse getResponse(WebConnection connection, String url) throws IOException {
return connection.getResponse(new WebRequest(new URL(url)));
return connection.getResponse(new WebRequest(URI.create(url).toURL()));
}
@@ -17,7 +17,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.io.IOException;
import java.net.URL;
import java.net.URI;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@@ -114,17 +114,17 @@ class MockMvcWebClientBuilderTests {
}
private WebResponse getResponse(WebClient client, String url) throws IOException {
return createResponse(client, new WebRequest(new URL(url)));
return createResponse(client, new WebRequest(URI.create(url).toURL()));
}
private WebResponse postResponse(WebClient client, String url, String body) throws IOException {
WebRequest request = new WebRequest(new URL(url), HttpMethod.POST);
WebRequest request = new WebRequest(URI.create(url).toURL(), HttpMethod.POST);
request.setRequestBody(body);
return createResponse(client, request);
}
private WebResponse deleteResponse(WebClient client, String url) throws IOException {
return createResponse(client, new WebRequest(new URL(url), HttpMethod.DELETE));
return createResponse(client, new WebRequest(URI.create(url).toURL(), HttpMethod.DELETE));
}
private WebResponse createResponse(WebClient client, WebRequest request) throws IOException {
@@ -16,7 +16,7 @@
package org.springframework.test.web.servlet.htmlunit;
import java.net.URL;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.List;
@@ -49,7 +49,7 @@ class MockWebResponseBuilderTests {
@BeforeEach
void setup() throws Exception {
this.webRequest = new WebRequest(new URL("http://company.example:80/test/this/here"));
this.webRequest = new WebRequest(URI.create("http://company.example:80/test/this/here").toURL());
this.responseBuilder = new MockWebResponseBuilder(System.currentTimeMillis(), this.webRequest, this.response);
}
@@ -64,7 +64,7 @@ class MockWebResponseBuilderTests {
void constructorWithNullResponse() {
assertThatIllegalArgumentException().isThrownBy(() ->
new MockWebResponseBuilder(0L,
new WebRequest(new URL("http://company.example:80/test/this/here")), null));
new WebRequest(URI.create("http://company.example:80/test/this/here").toURL()), null));
}
@Test
@@ -566,6 +566,7 @@ class MockHttpServletRequestBuilderTests {
}
@Test
@SuppressWarnings("deprecation") // for Locale constructors on JDK 19
void locale() {
Locale locale = new Locale("nl", "nl");
this.builder.locale(locale);
@@ -16,7 +16,7 @@
package org.springframework.test.web.servlet.samples.client.standalone.resultmatches;
import java.net.URL;
import java.net.URI;
import org.junit.jupiter.api.Test;
@@ -68,7 +68,7 @@ class FlashAttributeAssertionTests {
performRequest()
.andExpect(flash().attribute("one", "1"))
.andExpect(flash().attribute("two", 2.222))
.andExpect(flash().attribute("three", new URL("https://example.com")));
.andExpect(flash().attribute("three", URI.create("https://example.com").toURL()));
}
@Test
@@ -79,7 +79,7 @@ class FlashAttributeAssertionTests {
.andExpect(flash().attribute("three", notNullValue()))
.andExpect(flash().attribute("one", equalTo("1")))
.andExpect(flash().attribute("two", equalTo(2.222)))
.andExpect(flash().attribute("three", equalTo(new URL("https://example.com"))));
.andExpect(flash().attribute("three", equalTo(URI.create("https://example.com").toURL())));
}
private ResultActions performRequest() {
@@ -95,7 +95,7 @@ class FlashAttributeAssertionTests {
String save(RedirectAttributes redirectAttrs) throws Exception {
redirectAttrs.addFlashAttribute("one", "1");
redirectAttrs.addFlashAttribute("two", 2.222);
redirectAttrs.addFlashAttribute("three", new URL("https://example.com"));
redirectAttrs.addFlashAttribute("three", URI.create("https://example.com").toURL());
return "redirect:/person/1";
}
}
@@ -16,7 +16,7 @@
package org.springframework.test.web.servlet.samples.standalone.resultmatchers;
import java.net.URL;
import java.net.URI;
import org.junit.jupiter.api.Test;
@@ -67,7 +67,7 @@ class FlashAttributeAssertionTests {
this.mockMvc.perform(post("/persons"))
.andExpect(flash().attribute("one", "1"))
.andExpect(flash().attribute("two", 2.222))
.andExpect(flash().attribute("three", new URL("https://example.com")));
.andExpect(flash().attribute("three", URI.create("https://example.com").toURL()));
}
@Test
@@ -78,7 +78,7 @@ class FlashAttributeAssertionTests {
.andExpect(flash().attribute("three", notNullValue()))
.andExpect(flash().attribute("one", equalTo("1")))
.andExpect(flash().attribute("two", equalTo(2.222)))
.andExpect(flash().attribute("three", equalTo(new URL("https://example.com"))));
.andExpect(flash().attribute("three", equalTo(URI.create("https://example.com").toURL())));
}
@@ -89,7 +89,7 @@ class FlashAttributeAssertionTests {
String save(RedirectAttributes redirectAttrs) throws Exception {
redirectAttrs.addFlashAttribute("one", "1");
redirectAttrs.addFlashAttribute("two", 2.222);
redirectAttrs.addFlashAttribute("three", new URL("https://example.com"));
redirectAttrs.addFlashAttribute("three", URI.create("https://example.com").toURL());
return "redirect:/person/1";
}
}