This is an automated email from the ASF dual-hosted git repository. exceptionfactory pushed a commit to branch support/nifi-1.x in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/support/nifi-1.x by this push: new 18ab14b148 NIFI-12103 Replaced deprecated usage of new URL(String) 18ab14b148 is described below commit 18ab14b148793695134bafcbe0fdbc2a5de0d853 Author: Pierre Villard <pierre.villard...@gmail.com> AuthorDate: Thu Sep 21 13:05:00 2023 -0500 NIFI-12103 Replaced deprecated usage of new URL(String) This closes #7771 Signed-off-by: David Handermann <exceptionfact...@apache.org> (cherry picked from commit 2aca08910c4e06fff2c98d3794d9b5a3cd427988) --- .../c2/integration/test/AbstractTestSecure.java | 6 +++--- .../c2/integration/test/AbstractTestUnsecure.java | 4 ++-- .../test/health/HttpStatusCodeHealthCheck.java | 4 ++-- .../test/health/HttpsStatusCodeHealthCheck.java | 4 ++-- .../minifi/c2/provider/util/HttpConnector.java | 5 +++-- .../nifi/minifi/integration/util/LogUtil.java | 3 ++- .../resource/StandardResourceReferenceFactory.java | 5 +++-- .../nifi/remote/util/SiteToSiteRestApiClient.java | 23 ++++++++++++++++------ .../nifi/processor/util/StandardValidators.java | 7 +++---- .../util/file/classloader/ClassLoaderUtils.java | 4 ++-- .../file/classloader/TestClassLoaderUtils.java | 3 ++- .../validators/ConnectHttpUrlValidator.java | 5 ++--- .../AbstractNiFiProvenanceEventAnalyzer.java | 4 ++-- .../nifi/atlas/reporting/ReportLineageToAtlas.java | 20 ++++++------------- .../atlas/reporting/TestReportLineageToAtlas.java | 5 ++--- .../aws/wag/AbstractAWSGatewayApiProcessor.java | 3 +-- .../AzureLogAnalyticsProvenanceReportingTask.java | 8 +++----- .../ElasticSearchClientServiceImpl.java | 5 +++-- .../integration/AbstractElasticsearchITBase.java | 3 ++- .../OidcAuthenticationSuccessHandlerTest.java | 5 +++-- .../prometheus/PrometheusReportingTaskIT.java | 5 ++--- .../prometheus/TestPrometheusRecordSink.java | 5 ++--- .../SiteToSiteProvenanceReportingTask.java | 5 +++-- .../reporting/SiteToSiteStatusReportingTask.java | 5 +++-- .../org/apache/nifi/processors/slack/PutSlack.java | 3 ++- .../nifi/processors/standard/InvokeHTTP.java | 3 ++- .../standard/ITestHandleHttpRequest.java | 14 ++++++------- .../nifi/processors/standard/InvokeHTTPTest.java | 11 +++++------ .../registry/security/util/ClassLoaderUtils.java | 5 +++-- .../oidc/StandardOidcIdentityProvider.java | 2 +- .../registry/FileSystemFlowRegistryClient.java | 5 ++--- .../toolkit/cli/impl/command/AbstractCommand.java | 6 ++---- 32 files changed, 99 insertions(+), 96 deletions(-) diff --git a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestSecure.java b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestSecure.java index d63274417b..86f787929e 100644 --- a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestSecure.java +++ b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestSecure.java @@ -40,7 +40,7 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; -import java.net.URL; +import java.net.URI; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -194,8 +194,8 @@ public abstract class AbstractTestSecure extends AbstractTestUnsecure { protected HttpsURLConnection openUrlConnection(String url, SSLContext sslContext) throws IOException { DockerPort dockerPort = docker.containers().container("squid").port(3128); - HttpsURLConnection httpURLConnection = (HttpsURLConnection) new URL(url).openConnection( - new Proxy(Proxy.Type.HTTP, new InetSocketAddress(dockerPort.getIp(), dockerPort.getExternalPort()))); + HttpsURLConnection httpURLConnection = (HttpsURLConnection) URI.create(url).toURL().openConnection( + new Proxy(Proxy.Type.HTTP, new InetSocketAddress(dockerPort.getIp(), dockerPort.getExternalPort()))); httpURLConnection.setSSLSocketFactory(sslContext.getSocketFactory()); return httpURLConnection; } diff --git a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestUnsecure.java b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestUnsecure.java index 4fead5fb19..208d1dabdb 100644 --- a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestUnsecure.java +++ b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/AbstractTestUnsecure.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -102,6 +102,6 @@ public abstract class AbstractTestUnsecure { } protected HttpURLConnection openSuperUserUrlConnection(String url) throws IOException { - return (HttpURLConnection) new URL(url).openConnection(); + return (HttpURLConnection) URI.create(url).toURL().openConnection(); } } diff --git a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpStatusCodeHealthCheck.java b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpStatusCodeHealthCheck.java index f639d9678d..fe8d64e2d7 100644 --- a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpStatusCodeHealthCheck.java +++ b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpStatusCodeHealthCheck.java @@ -23,7 +23,7 @@ import com.palantir.docker.compose.connection.waiting.SuccessOrFailure; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.function.Function; public class HttpStatusCodeHealthCheck implements HealthCheck<Container> { @@ -50,6 +50,6 @@ public class HttpStatusCodeHealthCheck implements HealthCheck<Container> { } protected HttpURLConnection openConnection(String url) throws IOException { - return ((HttpURLConnection) new URL(url).openConnection()); + return ((HttpURLConnection) URI.create(url).toURL().openConnection()); } } diff --git a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpsStatusCodeHealthCheck.java b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpsStatusCodeHealthCheck.java index 9842e78492..19e2e5b66c 100644 --- a/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpsStatusCodeHealthCheck.java +++ b/minifi/minifi-c2/minifi-c2-integration-tests/src/test/java/org/apache/nifi/minifi/c2/integration/test/health/HttpsStatusCodeHealthCheck.java @@ -28,7 +28,7 @@ import java.io.IOException; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; -import java.net.URL; +import java.net.URI; import java.util.List; import java.util.function.Function; import java.util.function.Supplier; @@ -62,7 +62,7 @@ public class HttpsStatusCodeHealthCheck implements HealthCheck<List<Container>> } public static HttpURLConnection getHttpURLConnection(String url, SSLSocketFactory sslSocketFactory, String proxyHostname, int proxyPort) throws IOException { - HttpsURLConnection httpURLConnection = (HttpsURLConnection) new URL(url).openConnection( + HttpsURLConnection httpURLConnection = (HttpsURLConnection) URI.create(url).toURL().openConnection( new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHostname, proxyPort))); httpURLConnection.setSSLSocketFactory(sslSocketFactory); return httpURLConnection; diff --git a/minifi/minifi-c2/minifi-c2-provider/minifi-c2-provider-util/src/main/java/org/apache/nifi/minifi/c2/provider/util/HttpConnector.java b/minifi/minifi-c2/minifi-c2-provider/minifi-c2-provider-util/src/main/java/org/apache/nifi/minifi/c2/provider/util/HttpConnector.java index 49fe6a70a9..8b82be1fd8 100644 --- a/minifi/minifi-c2/minifi-c2-provider/minifi-c2-provider-util/src/main/java/org/apache/nifi/minifi/c2/provider/util/HttpConnector.java +++ b/minifi/minifi-c2/minifi-c2-provider/minifi-c2-provider-util/src/main/java/org/apache/nifi/minifi/c2/provider/util/HttpConnector.java @@ -33,6 +33,7 @@ import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; +import java.net.URI; import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Path; @@ -150,8 +151,8 @@ public class HttpConnector { } URL url; try { - url = new URL(endpointUrl); - } catch (MalformedURLException e) { + url = URI.create(endpointUrl).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { throw new ConfigurationProviderException("Malformed url " + endpointUrl, e); } diff --git a/minifi/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/util/LogUtil.java b/minifi/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/util/LogUtil.java index d03760fa1d..484cbe9368 100644 --- a/minifi/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/util/LogUtil.java +++ b/minifi/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/util/LogUtil.java @@ -27,6 +27,7 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; +import java.net.URI; import java.net.URL; import java.util.List; import java.util.Map; @@ -46,7 +47,7 @@ public class LogUtil { } DockerPort dockerPort = container.port(8000); logger.info("Connecting to external port {} for docker internal port of {}", new Object[]{dockerPort.getExternalPort(), dockerPort.getInternalPort()}); - URL url = new URL("http://" + dockerPort.getIp() + ":" + dockerPort.getExternalPort()); + URL url = URI.create("http://" + dockerPort.getIp() + ":" + dockerPort.getExternalPort()).toURL(); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); try (InputStream inputStream = urlConnection.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); diff --git a/nifi-api/src/main/java/org/apache/nifi/components/resource/StandardResourceReferenceFactory.java b/nifi-api/src/main/java/org/apache/nifi/components/resource/StandardResourceReferenceFactory.java index 538496182d..3980a9bde4 100644 --- a/nifi-api/src/main/java/org/apache/nifi/components/resource/StandardResourceReferenceFactory.java +++ b/nifi-api/src/main/java/org/apache/nifi/components/resource/StandardResourceReferenceFactory.java @@ -19,6 +19,7 @@ package org.apache.nifi.components.resource; import java.io.File; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -69,11 +70,11 @@ public class StandardResourceReferenceFactory implements ResourceReferenceFactor if (allowedResourceTypes.contains(ResourceType.URL)) { try { if (trimmed.startsWith("http://") || trimmed.startsWith("https://")) { - return new URLResourceReference(new URL(trimmed)); + return new URLResourceReference(URI.create(trimmed).toURL()); } if (trimmed.startsWith("file:")) { - final URL url = new URL(trimmed); + final URL url = URI.create(trimmed).toURL(); final String filename = url.getFile(); final File file = new File(filename); return new FileResourceReference(file); diff --git a/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/SiteToSiteRestApiClient.java b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/SiteToSiteRestApiClient.java index cd34cbccf3..0470feaaa1 100644 --- a/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/SiteToSiteRestApiClient.java +++ b/nifi-commons/nifi-site-to-site-client/src/main/java/org/apache/nifi/remote/util/SiteToSiteRestApiClient.java @@ -38,10 +38,8 @@ import java.io.InputStream; import java.io.PipedInputStream; import java.io.PipedOutputStream; import java.net.InetAddress; -import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; -import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.Channels; import java.nio.channels.ReadableByteChannel; @@ -93,6 +91,7 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.client.methods.HttpRequestBase; +import org.apache.http.client.utils.URIBuilder; import org.apache.http.client.utils.URIUtils; import org.apache.http.conn.ManagedHttpClientConnection; import org.apache.http.entity.BasicHttpEntity; @@ -1356,8 +1355,14 @@ public class SiteToSiteRestApiClient implements Closeable { } try { - return new URL(clusterUrl.getScheme(), clusterUrl.getHost(), clusterUrl.getPort(), uriPath).toURI().toString(); - } catch (MalformedURLException|URISyntaxException e) { + return new URIBuilder() + .setScheme(clusterUrl.getScheme()) + .setHost(clusterUrl.getHost()) + .setPort(clusterUrl.getPort()) + .setPath(uriPath) + .build() + .toString(); + } catch (URISyntaxException e) { throw new IllegalArgumentException(e); } } @@ -1369,8 +1374,14 @@ public class SiteToSiteRestApiClient implements Closeable { private void setBaseUrl(final String scheme, final String host, final int port, final String path) { final String baseUri; try { - baseUri = new URL(scheme, host, port, path).toURI().toString(); - } catch (MalformedURLException|URISyntaxException e) { + baseUri = new URIBuilder() + .setScheme(scheme) + .setHost(host) + .setPort(port) + .setPath(path) + .build() + .toString(); + } catch (URISyntaxException e) { throw new IllegalArgumentException(e); } this.setBaseUrl(baseUri); diff --git a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java index 65bbcd15a5..2e146ccbb6 100644 --- a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java +++ b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/processor/util/StandardValidators.java @@ -30,7 +30,6 @@ import org.apache.nifi.util.FormatUtils; import java.io.File; import java.net.MalformedURLException; import java.net.URI; -import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; import java.text.NumberFormat; @@ -548,7 +547,7 @@ public class StandardValidators { try { final String evaluatedInput = context.newPropertyValue(input).evaluateAttributeExpressions().getValue(); - new URL(evaluatedInput); + URI.create(evaluatedInput).toURL(); return new ValidationResult.Builder().subject(subject).input(input).explanation("Valid URL").valid(true).build(); } catch (final Exception e) { return new ValidationResult.Builder().subject(subject).input(input).explanation("Not a valid URL").valid(false).build(); @@ -577,8 +576,8 @@ public class StandardValidators { // First check to see if it is a valid URL try { - new URL(evaluatedInput); - } catch (MalformedURLException mue) { + URI.create(evaluatedInput).toURL(); + } catch (IllegalArgumentException | MalformedURLException mue) { validUrl = false; } diff --git a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java index 487c9d39b6..cb0a8bd173 100644 --- a/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java +++ b/nifi-commons/nifi-utils/src/main/java/org/apache/nifi/util/file/classloader/ClassLoaderUtils.java @@ -98,8 +98,8 @@ public class ClassLoaderUtils { // If the path is already a URL, just add it (but don't check if it exists, too expensive and subject to network availability) boolean isUrl = true; try { - additionalClasspath.add(new URL(modulePathString)); - } catch (MalformedURLException mue) { + additionalClasspath.add(URI.create(modulePathString).toURL()); + } catch (IllegalArgumentException | MalformedURLException e) { isUrl = false; } if (!isUrl) { diff --git a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java index 2ba4796bdc..71e393ee8a 100644 --- a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java +++ b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/util/file/classloader/TestClassLoaderUtils.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import java.io.FilenameFilter; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.nio.file.Paths; import java.util.HashSet; @@ -124,7 +125,7 @@ public class TestClassLoaderUtils { @Test public void testGenerateAdditionalUrlsFingerprintForHttpUrl() throws MalformedURLException { final Set<URL> urls = new HashSet<>(); - URL testUrl = new URL("http://myhost/TestSuccess.jar"); + URL testUrl = URI.create("http://myhost/TestSuccess.jar").toURL(); urls.add(testUrl); String testFingerprint = ClassLoaderUtils.generateAdditionalUrlsFingerprint(urls, null); assertNotNull(testFingerprint); diff --git a/nifi-external/nifi-kafka-connect/nifi-kafka-connector/src/main/java/org/apache/nifi/kafka/connect/validators/ConnectHttpUrlValidator.java b/nifi-external/nifi-kafka-connect/nifi-kafka-connector/src/main/java/org/apache/nifi/kafka/connect/validators/ConnectHttpUrlValidator.java index 6cc4ed18fc..ea1a4a2893 100644 --- a/nifi-external/nifi-kafka-connect/nifi-kafka-connector/src/main/java/org/apache/nifi/kafka/connect/validators/ConnectHttpUrlValidator.java +++ b/nifi-external/nifi-kafka-connect/nifi-kafka-connector/src/main/java/org/apache/nifi/kafka/connect/validators/ConnectHttpUrlValidator.java @@ -20,7 +20,7 @@ package org.apache.nifi.kafka.connect.validators; import org.apache.kafka.common.config.ConfigDef; import org.apache.kafka.common.config.ConfigException; -import java.net.URL; +import java.net.URI; public class ConnectHttpUrlValidator implements ConfigDef.Validator { @Override @@ -34,8 +34,7 @@ public class ConnectHttpUrlValidator implements ConfigDef.Validator { } try { - final URL url = new URL((String) value); - final String protocol = url.getProtocol(); + final String protocol = URI.create((String) value).toURL().getProtocol(); if (!protocol.equals("http") && !protocol.equals("https")) { throw new ConfigException("Invalid value for property " + name + ": The value must be an http or https URL"); } diff --git a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/provenance/AbstractNiFiProvenanceEventAnalyzer.java b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/provenance/AbstractNiFiProvenanceEventAnalyzer.java index 9269fdf714..47ad644a0f 100644 --- a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/provenance/AbstractNiFiProvenanceEventAnalyzer.java +++ b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/provenance/AbstractNiFiProvenanceEventAnalyzer.java @@ -48,8 +48,8 @@ public abstract class AbstractNiFiProvenanceEventAnalyzer implements NiFiProvena */ protected URL parseUrl(String url) { try { - return new URL(url); - } catch (MalformedURLException e) { + return URI.create(url).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { final String msg = String.format("Failed to parse url %s due to %s", url, e); throw new IllegalArgumentException(msg, e); } diff --git a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/reporting/ReportLineageToAtlas.java b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/reporting/ReportLineageToAtlas.java index ca7ca366a7..d0359fa1e0 100644 --- a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/reporting/ReportLineageToAtlas.java +++ b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/main/java/org/apache/nifi/atlas/reporting/ReportLineageToAtlas.java @@ -80,8 +80,7 @@ import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.time.Instant; @@ -95,6 +94,7 @@ import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Properties; import java.util.ServiceLoader; import java.util.Set; @@ -447,8 +447,7 @@ public class ReportLineageToAtlas extends AbstractReportingTask { .map(String::trim) .forEach(input -> { try { - final URL url = new URL(input); - schemes.add(url.toURI().getScheme()); + schemes.add(Objects.requireNonNull(URI.create(input).getScheme())); } catch (Exception e) { results.add(new ValidationResult.Builder().subject(ATLAS_URLS.getDisplayName()).input(input) .explanation("contains invalid URI: " + e).valid(false).build()); @@ -667,7 +666,7 @@ public class ReportLineageToAtlas extends AbstractReportingTask { .map(String::trim) .forEach(urlString -> { try { - new URL(urlString); + URI.create(urlString).toURL(); } catch (Exception e) { throw new ProcessException(e); } @@ -860,15 +859,8 @@ public class ReportLineageToAtlas extends AbstractReportingTask { final ProcessGroupStatus rootProcessGroup = context.getEventAccess().getGroupStatus("root"); final String flowName = rootProcessGroup.getName(); final String nifiUrl = context.getProperty(ATLAS_NIFI_URL).evaluateAttributeExpressions().getValue(); - - - final String namespace; - try { - final String nifiHostName = new URL(nifiUrl).getHost(); - namespace = namespaceResolvers.fromHostNames(nifiHostName); - } catch (MalformedURLException e) { - throw new IllegalArgumentException("Failed to parse NiFi URL, " + e.getMessage(), e); - } + final String nifiHostName = URI.create(nifiUrl).getHost(); + final String namespace = namespaceResolvers.fromHostNames(nifiHostName); NiFiFlow existingNiFiFlow = null; try { diff --git a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/test/java/org/apache/nifi/atlas/reporting/TestReportLineageToAtlas.java b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/test/java/org/apache/nifi/atlas/reporting/TestReportLineageToAtlas.java index 7044a2c949..e7f15c820c 100644 --- a/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/test/java/org/apache/nifi/atlas/reporting/TestReportLineageToAtlas.java +++ b/nifi-nar-bundles/nifi-atlas-bundle/nifi-atlas-reporting-task/src/test/java/org/apache/nifi/atlas/reporting/TestReportLineageToAtlas.java @@ -53,7 +53,6 @@ import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.net.MalformedURLException; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -195,8 +194,8 @@ public class TestReportLineageToAtlas { atlasConf.setProperty("atlas.rest.address", atlasUrls); Consumer<Exception> assertion = e -> assertTrue( - e.getCause() instanceof MalformedURLException, - "Expected " + MalformedURLException.class.getSimpleName() + " for " + atlasUrls + ", got " + e + e.getCause() instanceof IllegalArgumentException, + "Expected " + IllegalArgumentException.class.getSimpleName() + " for " + atlasUrls + ", got " + e ); // WHEN diff --git a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/AbstractAWSGatewayApiProcessor.java b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/AbstractAWSGatewayApiProcessor.java index 66068a863e..a7a23951a2 100644 --- a/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/AbstractAWSGatewayApiProcessor.java +++ b/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-abstract-processors/src/main/java/org/apache/nifi/processors/aws/wag/AbstractAWSGatewayApiProcessor.java @@ -31,7 +31,6 @@ import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URI; -import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; @@ -336,7 +335,7 @@ public abstract class AbstractAWSGatewayApiProcessor extends // but we may need to when validating final String encodedInput = URLEncoder.encode(evaluatedInput, "UTF-8"); final String url = String.format("http://www.foo.com?%s", encodedInput); - new URL(url); + URI.create(url).toURL(); results.add(new ValidationResult.Builder().subject(PROP_QUERY_PARAMS.getName()) .input(input) .explanation("Valid URL params") diff --git a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java index da8cfa988f..d71943540a 100644 --- a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java +++ b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-reporting-task/src/main/java/org/apache/nifi/reporting/azure/loganalytics/AzureLogAnalyticsProvenanceReportingTask.java @@ -18,6 +18,7 @@ package org.apache.nifi.reporting.azure.loganalytics; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.text.DateFormat; import java.text.MessageFormat; @@ -45,7 +46,6 @@ import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnUnscheduled; import org.apache.nifi.components.AllowableValue; import org.apache.nifi.components.PropertyDescriptor; -import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.controller.status.ProcessGroupStatus; import org.apache.nifi.expression.ExpressionLanguageScope; import org.apache.nifi.processor.util.StandardValidators; @@ -169,8 +169,6 @@ public class AzureLogAnalyticsProvenanceReportingTask extends AbstractAzureLogAn .description("Specifies how many records to send in a single batch, at most.").required(true) .defaultValue("1000").addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).build(); - private ConfigurationContext context; - private volatile ProvenanceEventConsumer consumer; @Override @@ -300,8 +298,8 @@ public class AzureLogAnalyticsProvenanceReportingTask extends AbstractAzureLogAn final String nifiUrl = context.getProperty(INSTANCE_URL).evaluateAttributeExpressions().getValue(); URL url; try { - url = new URL(nifiUrl); - } catch (final MalformedURLException e1) { + url = URI.create(nifiUrl).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { throw new AssertionError(); } diff --git a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java index 33cf71862a..103cf7a920 100644 --- a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java +++ b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-client-service/src/main/java/org/apache/nifi/elasticsearch/ElasticSearchClientServiceImpl.java @@ -70,6 +70,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.Proxy; +import java.net.URI; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -419,7 +420,7 @@ public class ElasticSearchClientServiceImpl extends AbstractControllerService im this.url = hostsSplit.get(0); final List<HttpHost> hh = new ArrayList<>(hostsSplit.size()); for (final String host : hostsSplit) { - final URL u = new URL(host); + final URL u = URI.create(host).toURL(); hh.add(new HttpHost(u.getHost(), u.getPort(), u.getProtocol())); } @@ -560,8 +561,8 @@ public class ElasticSearchClientServiceImpl extends AbstractControllerService im } sb.append("/").append(endpoint); - final HttpEntity queryEntity = new NStringEntity(query, ContentType.APPLICATION_JSON); try { + final HttpEntity queryEntity = new NStringEntity(query, ContentType.APPLICATION_JSON); return performRequest("POST", sb.toString(), requestParameters, queryEntity); } catch (final Exception e) { throw new ElasticsearchException(e); diff --git a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java index 9c77306d0c..a419fc334e 100644 --- a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java +++ b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java @@ -40,6 +40,7 @@ import org.testcontainers.utility.DockerImageName; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.net.URI; import java.net.URL; import java.nio.file.Files; import java.nio.file.Paths; @@ -134,7 +135,7 @@ public abstract class AbstractElasticsearchITBase { protected static void setupTestData() throws IOException { final int majorVersion = getElasticMajorVersion(); - final URL url = new URL(elasticsearchHost); + final URL url = URI.create(elasticsearchHost).toURL(); testDataManagementClient = RestClient .builder(new HttpHost(url.getHost(), url.getPort(), url.getProtocol())) .setHttpClientConfigCallback(httpClientBuilder -> { diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/oidc/web/authentication/OidcAuthenticationSuccessHandlerTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/oidc/web/authentication/OidcAuthenticationSuccessHandlerTest.java index d2bba5c6f0..907c41c466 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/oidc/web/authentication/OidcAuthenticationSuccessHandlerTest.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/src/test/java/org/apache/nifi/web/security/oidc/web/authentication/OidcAuthenticationSuccessHandlerTest.java @@ -41,6 +41,7 @@ import org.springframework.security.oauth2.core.oidc.user.OidcUser; import javax.servlet.ServletContext; import javax.servlet.http.Cookie; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.time.Duration; import java.time.Instant; @@ -204,8 +205,8 @@ class OidcAuthenticationSuccessHandlerTest { URL getIssuer() { try { - return new URL(ISSUER); - } catch (final MalformedURLException e) { + return URI.create(ISSUER).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { throw new RuntimeException(e); } } diff --git a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/PrometheusReportingTaskIT.java b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/PrometheusReportingTaskIT.java index 80cc934c5f..01a2086062 100644 --- a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/PrometheusReportingTaskIT.java +++ b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/PrometheusReportingTaskIT.java @@ -39,7 +39,7 @@ import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -158,8 +158,7 @@ public class PrometheusReportingTaskIT { } private String getMetrics() throws IOException { - URL url = new URL("http://localhost:9092/metrics"); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); + HttpURLConnection con = (HttpURLConnection) URI.create("http://localhost:9092/metrics").toURL().openConnection(); con.setRequestMethod("GET"); int status = con.getResponseCode(); assertEquals(HttpURLConnection.HTTP_OK, status); diff --git a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusRecordSink.java b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusRecordSink.java index a1dca49749..d2ac994689 100644 --- a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusRecordSink.java +++ b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusRecordSink.java @@ -51,7 +51,7 @@ import org.junit.jupiter.api.Test; import java.io.IOException; import java.math.BigDecimal; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; @@ -124,8 +124,7 @@ public class TestPrometheusRecordSink { } private String getMetrics() throws IOException { - URL url = new URL("http://localhost:" + portString + "/metrics"); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); + HttpURLConnection con = (HttpURLConnection) URI.create("http://localhost:" + portString + "/metrics").toURL().openConnection(); con.setRequestMethod("GET"); int status = con.getResponseCode(); assertEquals(HttpURLConnection.HTTP_OK, status); diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java index d382ca3e2b..708cd067b8 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java @@ -20,6 +20,7 @@ package org.apache.nifi.reporting; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -274,8 +275,8 @@ public class SiteToSiteProvenanceReportingTask extends AbstractSiteToSiteReporti final String nifiUrl = context.getProperty(SiteToSiteUtils.INSTANCE_URL).evaluateAttributeExpressions().getValue(); URL url; try { - url = new URL(nifiUrl); - } catch (final MalformedURLException e1) { + url = URI.create(nifiUrl).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { // already validated throw new AssertionError(); } diff --git a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java index ab18c58886..6d23bad766 100644 --- a/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java +++ b/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteStatusReportingTask.java @@ -20,6 +20,7 @@ package org.apache.nifi.reporting; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -132,8 +133,8 @@ public class SiteToSiteStatusReportingTask extends AbstractSiteToSiteReportingTa final String nifiUrl = context.getProperty(SiteToSiteUtils.INSTANCE_URL).evaluateAttributeExpressions().getValue(); URL url; try { - url = new URL(nifiUrl); - } catch (final MalformedURLException e1) { + url = URI.create(nifiUrl).toURL(); + } catch (IllegalArgumentException | MalformedURLException e) { // already validated throw new AssertionError(); } diff --git a/nifi-nar-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PutSlack.java b/nifi-nar-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PutSlack.java index 6951ad531d..d32a983e1f 100644 --- a/nifi-nar-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PutSlack.java +++ b/nifi-nar-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/processors/slack/PutSlack.java @@ -47,6 +47,7 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.net.HttpURLConnection; +import java.net.URI; import java.net.URL; import java.net.URLEncoder; import java.util.Arrays; @@ -255,7 +256,7 @@ public class PutSlack extends AbstractProcessor { jsonWriter.writeObject(jsonObject); jsonWriter.close(); - URL url = new URL(context.getProperty(WEBHOOK_URL).evaluateAttributeExpressions(flowFile).getValue()); + URL url = URI.create(context.getProperty(WEBHOOK_URL).evaluateAttributeExpressions(flowFile).getValue()).toURL(); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java index 84ff2dec77..e0023fc821 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java @@ -27,6 +27,7 @@ import java.net.CookieManager; import java.net.CookiePolicy; import java.net.Proxy; import java.net.Proxy.Type; +import java.net.URI; import java.net.URL; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; @@ -938,7 +939,7 @@ public class InvokeHTTP extends AbstractProcessor { FlowFile responseFlowFile = null; try { final String urlProperty = trimToEmpty(context.getProperty(HTTP_URL).evaluateAttributeExpressions(requestFlowFile).getValue()); - final URL url = new URL(urlProperty); + final URL url = URI.create(urlProperty).toURL(); Request httpRequest = configureRequest(context, session, requestFlowFile, url); logRequest(logger, httpRequest); diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/ITestHandleHttpRequest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/ITestHandleHttpRequest.java index 188018bc19..e1360ab3db 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/ITestHandleHttpRequest.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/ITestHandleHttpRequest.java @@ -56,7 +56,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.List; import java.util.Optional; import java.util.Random; @@ -125,8 +125,8 @@ public class ITestHandleHttpRequest { try { serverReady.await(); final int port = ((HandleHttpRequest) runner.getProcessor()).getPort(); - final HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:" - + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").openConnection(); + final HttpURLConnection connection = (HttpURLConnection) URI.create("http://localhost:" + + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").toURL().openConnection(); connection.setDoOutput(false); connection.setRequestMethod("GET"); @@ -470,8 +470,8 @@ public class ITestHandleHttpRequest { serverReady.await(); final int port = ((HandleHttpRequest) runner.getProcessor()).getPort(); - connection = (HttpURLConnection) new URL("http://localhost:" - + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").openConnection(); + connection = (HttpURLConnection) URI.create("http://localhost:" + + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").toURL().openConnection(); connection.setDoOutput(false); connection.setRequestMethod("GET"); connection.setRequestProperty("header1", "value1"); @@ -598,8 +598,8 @@ public class ITestHandleHttpRequest { serverReady.await(); final int port = ((HandleHttpRequest) runner.getProcessor()).getPort(); - final HttpsURLConnection connection = (HttpsURLConnection) new URL("https://localhost:" - + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").openConnection(); + final HttpsURLConnection connection = (HttpsURLConnection) URI.create("https://localhost:" + + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").toURL().openConnection(); SSLContext clientSslContext; if (twoWaySsl) { diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/InvokeHTTPTest.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/InvokeHTTPTest.java index 224706b7f6..ef327d50eb 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/InvokeHTTPTest.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/InvokeHTTPTest.java @@ -48,6 +48,7 @@ import javax.net.ssl.SSLSocketFactory; import java.io.IOException; import java.net.MalformedURLException; import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.security.GeneralSecurityException; @@ -267,7 +268,7 @@ public class InvokeHTTPTest { runner.assertPenalizeCount(1); final MockFlowFile flowFile = getFailureFlowFile(); - flowFile.assertAttributeEquals(InvokeHTTP.EXCEPTION_CLASS, MalformedURLException.class.getName()); + flowFile.assertAttributeEquals(InvokeHTTP.EXCEPTION_CLASS, IllegalArgumentException.class.getName()); flowFile.assertAttributeExists(InvokeHTTP.EXCEPTION_MESSAGE); } @@ -798,9 +799,8 @@ public class InvokeHTTPTest { @ParameterizedTest(name = "{index} => When {0} http://baseUrl/{1}, filename of the response FlowFile should be {2}") @MethodSource - public void testResponseFlowFileFilenameExtractedFromRemoteUrl(String httpMethod, String inputUrl, String expectedFileName) throws MalformedURLException { - URL baseUrl = new URL(getMockWebServerUrl()); - URL targetUrl = new URL(baseUrl, inputUrl); + public void testResponseFlowFileFilenameExtractedFromRemoteUrl(String httpMethod, String relativePath, String expectedFileName) throws MalformedURLException, URISyntaxException { + URL targetUrl = new URI("http", null, mockWebServer.getHostName(), mockWebServer.getPort(), String.format("/%s", relativePath), null, null).toURL(); runner.setProperty(InvokeHTTP.HTTP_METHOD, httpMethod); runner.setProperty(InvokeHTTP.HTTP_URL, targetUrl.toString()); @@ -824,8 +824,7 @@ public class InvokeHTTPTest { Arguments.of(HttpMethod.GET.name(), "file/", "file"), Arguments.of(HttpMethod.GET.name(), "file.txt", "file.txt"), Arguments.of(HttpMethod.GET.name(), "file.txt/", "file.txt"), - Arguments.of(HttpMethod.GET.name(), "file.txt/?qp=v", "file.txt"), - Arguments.of(HttpMethod.GET.name(), "f%69%6Cle.txt", "f%69%6Cle.txt"), + Arguments.of(HttpMethod.GET.name(), "f%69%6Cle.txt", "f%2569%256Cle.txt"), Arguments.of(HttpMethod.GET.name(), "path/to/file.txt", "file.txt"), Arguments.of(HttpMethod.GET.name(), "", FLOW_FILE_INITIAL_FILENAME), Arguments.of(HttpMethod.POST.name(), "has/path", FLOW_FILE_INITIAL_FILENAME), diff --git a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/util/ClassLoaderUtils.java b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/util/ClassLoaderUtils.java index 1f05cd3bb6..96e40b331f 100644 --- a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/util/ClassLoaderUtils.java +++ b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/util/ClassLoaderUtils.java @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.FilenameFilter; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.URLClassLoader; import java.util.Arrays; @@ -92,8 +93,8 @@ public class ClassLoaderUtils { // If the path is already a URL, just add it (but don't check if it exists, too expensive and subject to network availability) boolean isUrl = true; try { - additionalClasspath.add(new URL(modulePathString)); - } catch (MalformedURLException mue) { + additionalClasspath.add(URI.create(modulePathString).toURL()); + } catch (IllegalArgumentException | MalformedURLException mue) { isUrl = false; } if (!isUrl) { diff --git a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/oidc/StandardOidcIdentityProvider.java b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/oidc/StandardOidcIdentityProvider.java index 77b1b3c075..e70f696604 100644 --- a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/oidc/StandardOidcIdentityProvider.java +++ b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/security/authentication/oidc/StandardOidcIdentityProvider.java @@ -244,7 +244,7 @@ public class StandardOidcIdentityProvider implements OidcIdentityProvider { * @throws ParseException if there is a problem parsing the response */ private OIDCProviderMetadata retrieveOidcProviderMetadata(final String discoveryUri) throws IOException, ParseException { - final URL url = new URL(discoveryUri); + final URL url = URI.create(discoveryUri).toURL(); final HTTPRequest httpRequest = new HTTPRequest(HTTPRequest.Method.GET, url); httpRequest.setConnectTimeout(oidcConnectTimeout); httpRequest.setReadTimeout(oidcReadTimeout); diff --git a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/flow/registry/FileSystemFlowRegistryClient.java b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/flow/registry/FileSystemFlowRegistryClient.java index 8bf24b6b59..5636424b29 100644 --- a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/flow/registry/FileSystemFlowRegistryClient.java +++ b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/flow/registry/FileSystemFlowRegistryClient.java @@ -38,7 +38,7 @@ import org.apache.nifi.util.file.FileUtils; import java.io.File; import java.io.IOException; -import java.net.URL; +import java.net.URI; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -77,8 +77,7 @@ public class FileSystemFlowRegistryClient extends AbstractFlowRegistryClient { @Override public boolean isStorageLocationApplicable(final FlowRegistryClientConfigurationContext context, final String storageLocation) { try { - final URL url = new URL(storageLocation); - final File file = new java.io.File(url.toURI()); + final File file = new java.io.File(URI.create(storageLocation)); final Path path = file.toPath(); final String configuredDirectory = context.getProperty(DIRECTORY).getValue(); diff --git a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/AbstractCommand.java b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/AbstractCommand.java index b699918c09..e9bdc32697 100644 --- a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/AbstractCommand.java +++ b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/command/AbstractCommand.java @@ -32,7 +32,6 @@ import java.io.PrintStream; import java.io.PrintWriter; import java.net.MalformedURLException; import java.net.URI; -import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Paths; import java.util.Objects; @@ -242,9 +241,8 @@ public abstract class AbstractCommand<R extends Result> implements Command<R> { String contents; try { // try a public resource URL - URL url = new URL(inputFile); - contents = IOUtils.toString(url, StandardCharsets.UTF_8); - } catch (MalformedURLException e) { + contents = IOUtils.toString(URI.create(inputFile).toURL(), StandardCharsets.UTF_8); + } catch (IllegalArgumentException | MalformedURLException e) { // assume a local file then URI uri = Paths.get(inputFile).toAbsolutePath().toUri(); contents = IOUtils.toString(uri, StandardCharsets.UTF_8);