From 2779c04ac80c8558db21f31092612bf559aadfaa Mon Sep 17 00:00:00 2001 From: James Rogers Date: Fri, 19 Jun 2026 15:04:45 +0100 Subject: [PATCH] FIX: address Java compiler warnings - Eliminate this-escape where cheap: inline trivial setters to direct field writes; make createAndVerifyTempDir/init final - Suppress remaining benign this-escape (this passed to collaborators, super.addSuppressed, superclass/builder setters) - Replace deprecated new URL(String) with URI-based construction - Mark non-serializable CloudRequestException.responseHeaders transient - Uncomment -Werror to prevent warning regressions - Correct declaration of IWeightedValue[] - @SuppressWarnings("restricted") on load() --- .vscode/settings.json | 3 ++ .../fiftyone/caching/LruLoadingCache.java | 2 +- .../CloudRequestException.java | 2 +- .../flowelements/CloudAspectEngineBase.java | 1 + .../CloudRequestEngineDefault.java | 31 +++++++++++++++++-- .../CloudRequestEngineTestsBase.java | 3 +- .../core/flowelements/FlowElementBase.java | 1 + .../exceptions/AggregateException.java | 2 ++ .../pipeline/util/FiftyOneLookup.java | 1 + .../core/data/WeightedValueTests.java | 2 +- ...FiftyOneAspectPropertyMetaDataDefault.java | 1 + ...tyOneOnPremiseAspectEngineBuilderBase.java | 1 + .../flowelements/SetHeadersElement.java | 1 + .../fiftyone/flowelements/ShareUsageBase.java | 2 +- .../flowelements/ShareUsageBuilderBase.java | 6 ++-- .../flowelements/ShareUsageElement.java | 4 +-- .../flowelements/interop/LibLoader.java | 1 + .../data/AspectPropertyValueDefault.java | 3 +- .../exceptions/PropertyMissingException.java | 4 +-- .../OnPremiseAspectEngineBase.java | 2 +- .../OnPremiseAspectEngineBuilderBase.java | 2 +- .../services/DataUpdateServiceDefault.java | 4 +-- .../engines/services/DataUploaderHttp.java | 4 +-- .../engines/services/HttpClientTests.java | 6 ++-- .../testhelpers/flowelements/EmptyEngine.java | 2 ++ .../flowelements/JsonBuilderElement.java | 1 + .../ClientsidePropertyServiceCore.java | 2 +- pom.xml | 2 +- 28 files changed, 70 insertions(+), 26 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..7b016a89f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.compile.nullAnalysis.mode": "automatic" +} \ No newline at end of file diff --git a/pipeline.caching/src/main/java/fiftyone/caching/LruLoadingCache.java b/pipeline.caching/src/main/java/fiftyone/caching/LruLoadingCache.java index 25e7c7d67..acb7bc0b4 100644 --- a/pipeline.caching/src/main/java/fiftyone/caching/LruLoadingCache.java +++ b/pipeline.caching/src/main/java/fiftyone/caching/LruLoadingCache.java @@ -71,7 +71,7 @@ public LruLoadingCache(int cacheSize, ValueLoader loader) { */ LruLoadingCache(int cacheSize, ValueLoader loader, int concurrency) { super(cacheSize, concurrency, false); - setCacheLoader(loader); + this.loader = loader; } /** diff --git a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/CloudRequestException.java b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/CloudRequestException.java index b2c5ceb17..1a9350b97 100644 --- a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/CloudRequestException.java +++ b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/CloudRequestException.java @@ -38,7 +38,7 @@ public class CloudRequestException extends PipelineDataException { private static final long serialVersionUID = 2110016714691972118L; private int httpStatusCode; - private Map> responseHeaders; + private transient Map> responseHeaders; /** * Get the HTTP status code from the response. diff --git a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudAspectEngineBase.java b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudAspectEngineBase.java index 8574cb96b..70f10ea2a 100644 --- a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudAspectEngineBase.java +++ b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudAspectEngineBase.java @@ -116,6 +116,7 @@ public CloudRequestEngine getInstance() throws PipelineConfigurationException { * @param aspectDataFactory the factory to use when creating a TData * instance */ + @SuppressWarnings("this-escape") public CloudAspectEngineBase( Logger logger, ElementDataFactory aspectDataFactory) { diff --git a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineDefault.java b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineDefault.java index 78e18630b..5ffbe1498 100644 --- a/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineDefault.java +++ b/pipeline.cloudrequestengine/src/main/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineDefault.java @@ -43,6 +43,9 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -121,6 +124,7 @@ public CloudRequestEngineDefault( cloudRequestOrigin); } + @SuppressWarnings("this-escape") public CloudRequestEngineDefault( Logger logger, ElementDataFactory aspectDataFactory, @@ -208,7 +212,7 @@ public EvidenceKeyFilter getEvidenceKeyFilter() throws CloudRequestException, Ag @Override protected void processEngine(FlowData data, CloudRequestData aspectData) throws IOException { byte[] content = getContent(data); - HttpURLConnection connection = httpClient.connect(new URL(endPoint.trim())); + HttpURLConnection connection = httpClient.connect(toUrl(endPoint.trim())); if (timeoutMillis != null) { connection.setConnectTimeout(timeoutMillis); connection.setReadTimeout(timeoutMillis); @@ -386,6 +390,27 @@ private void setCommonHeaders(Map headers) { } } + /** + * Convert a string into a {@link URL} instance. + *

+ * Replaces the deprecated {@code new URL(String)} constructor with + * {@link URI#toURL()}, translating the checked {@link URISyntaxException} + * into a {@link MalformedURLException} so that callers continue to see the + * same {@link java.io.IOException} as they did previously. + * @param spec the string to parse as a URL + * @return the parsed {@link URL} + * @throws MalformedURLException if the string is not a valid URL + */ + private static URL toUrl(String spec) throws MalformedURLException { + try { + return new URI(spec).toURL(); + } catch (URISyntaxException e) { + MalformedURLException ex = new MalformedURLException(e.getMessage()); + ex.initCause(e); + throw ex; + } + } + private void getCloudProperties() throws CloudRequestException, AggregateException, PropertyNotLoadedException { try { String jsonResult; @@ -393,7 +418,7 @@ private void getCloudProperties() throws CloudRequestException, AggregateExcepti Map headers = new HashMap<>(); setCommonHeaders(headers); - HttpURLConnection connection = httpClient.connect(new URL(propertiesEndpoint.trim() + (resourceKey != null ? "?Resource=" + resourceKey : ""))); + HttpURLConnection connection = httpClient.connect(toUrl(propertiesEndpoint.trim() + (resourceKey != null ? "?Resource=" + resourceKey : ""))); jsonResult = httpClient.getResponseString(connection, headers); validateResponse(jsonResult, connection); @@ -423,7 +448,7 @@ private void getCloudEvidenceKeys() throws CloudRequestException, AggregateExcep Map headers = new HashMap<>(); setCommonHeaders(headers); - HttpURLConnection connection = httpClient.connect(new URL(evidenceKeysEndpoint.trim())); + HttpURLConnection connection = httpClient.connect(toUrl(evidenceKeysEndpoint.trim())); jsonResult = httpClient.getResponseString(connection, headers); validateResponse(jsonResult, connection, false); diff --git a/pipeline.cloudrequestengine/src/test/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineTestsBase.java b/pipeline.cloudrequestengine/src/test/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineTestsBase.java index 44de806ff..0320d94e5 100644 --- a/pipeline.cloudrequestengine/src/test/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineTestsBase.java +++ b/pipeline.cloudrequestengine/src/test/java/fiftyone/pipeline/cloudrequestengine/flowelements/CloudRequestEngineTestsBase.java @@ -33,6 +33,7 @@ import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.HashMap; import java.util.List; @@ -45,7 +46,7 @@ public class CloudRequestEngineTestsBase { HttpClient httpClient; protected TestLoggerFactory loggerFactory; - protected URL expectedUrl = new URL("https://cloud.51degrees.com/api/v4/resource_key.json"); + protected URL expectedUrl = URI.create("https://cloud.51degrees.com/api/v4/resource_key.json").toURL(); protected String jsonResponse = "{'device':{'value':'1'}}"; protected String evidenceKeysResponse = "['query.User-Agent']"; protected String accessiblePropertiesResponse = diff --git a/pipeline.core/src/main/java/fiftyone/pipeline/core/flowelements/FlowElementBase.java b/pipeline.core/src/main/java/fiftyone/pipeline/core/flowelements/FlowElementBase.java index 672fe87ab..3da07c441 100644 --- a/pipeline.core/src/main/java/fiftyone/pipeline/core/flowelements/FlowElementBase.java +++ b/pipeline.core/src/main/java/fiftyone/pipeline/core/flowelements/FlowElementBase.java @@ -64,6 +64,7 @@ public abstract class FlowElementBase< * @param elementDataFactory the factory to use when creating a * {@link ElementDataBase} instance */ + @SuppressWarnings("this-escape") public FlowElementBase( Logger logger, ElementDataFactory elementDataFactory) { diff --git a/pipeline.core/src/main/java/fiftyone/pipeline/exceptions/AggregateException.java b/pipeline.core/src/main/java/fiftyone/pipeline/exceptions/AggregateException.java index 42a674507..bf4de9565 100644 --- a/pipeline.core/src/main/java/fiftyone/pipeline/exceptions/AggregateException.java +++ b/pipeline.core/src/main/java/fiftyone/pipeline/exceptions/AggregateException.java @@ -41,6 +41,7 @@ public class AggregateException extends RuntimeException { * @param message the message to give to the exception * @param causes multiple causes to be contained in the exception */ + @SuppressWarnings("this-escape") public AggregateException(String message, Collection causes) { super(message); for (Throwable cause : causes) { @@ -52,6 +53,7 @@ public AggregateException(String message, Collection causes) { * Construct a new instance with no message. * @param causes multiple causes to be contained in the exception */ + @SuppressWarnings("this-escape") public AggregateException(Collection causes) { super(); for (Throwable cause : causes) { diff --git a/pipeline.core/src/main/java/fiftyone/pipeline/util/FiftyOneLookup.java b/pipeline.core/src/main/java/fiftyone/pipeline/util/FiftyOneLookup.java index 2ddaa6754..027f124d1 100644 --- a/pipeline.core/src/main/java/fiftyone/pipeline/util/FiftyOneLookup.java +++ b/pipeline.core/src/main/java/fiftyone/pipeline/util/FiftyOneLookup.java @@ -91,6 +91,7 @@ public static StringSubstitutor getSubstitutor() { * which is not what we want. */ public static class FiftyOneStringSubstitutor extends StringSubstitutor { + @SuppressWarnings("this-escape") public FiftyOneStringSubstitutor(StringLookup variableResolver) { super(variableResolver); setEnableSubstitutionInVariables(true); diff --git a/pipeline.core/src/test/java/fiftyone/pipeline/core/data/WeightedValueTests.java b/pipeline.core/src/test/java/fiftyone/pipeline/core/data/WeightedValueTests.java index 192d70938..7dfde4274 100644 --- a/pipeline.core/src/test/java/fiftyone/pipeline/core/data/WeightedValueTests.java +++ b/pipeline.core/src/test/java/fiftyone/pipeline/core/data/WeightedValueTests.java @@ -41,7 +41,7 @@ public void WeightedValue_GetWeighting_1() { @Test public void WeightedValue_GetWeighting_05() { IWeightedValue[] values = - new IWeightedValue[]{ + new IWeightedValue[]{ new WeightedValue<>(MAX_RAW_WEIGHTING / 2 + 1, 5), new WeightedValue<>(MAX_RAW_WEIGHTING / 2, 13), }; diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/FiftyOneAspectPropertyMetaDataDefault.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/FiftyOneAspectPropertyMetaDataDefault.java index 2f6b23835..cd80a737f 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/FiftyOneAspectPropertyMetaDataDefault.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/FiftyOneAspectPropertyMetaDataDefault.java @@ -45,6 +45,7 @@ public class FiftyOneAspectPropertyMetaDataDefault private final Iterable values; private final ValueMetaDataDefault defaultValue; + @SuppressWarnings("this-escape") public FiftyOneAspectPropertyMetaDataDefault( String name, FlowElement element, diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/FiftyOneOnPremiseAspectEngineBuilderBase.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/FiftyOneOnPremiseAspectEngineBuilderBase.java index 8e6098453..bcd634359 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/FiftyOneOnPremiseAspectEngineBuilderBase.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/FiftyOneOnPremiseAspectEngineBuilderBase.java @@ -71,6 +71,7 @@ public FiftyOneOnPremiseAspectEngineBuilderBase(ILoggerFactory loggerFactory) { * @param dataUpdateService the {@link DataUpdateService} to use when * automatic updates happen on the data file */ + @SuppressWarnings("this-escape") public FiftyOneOnPremiseAspectEngineBuilderBase( ILoggerFactory loggerFactory, DataUpdateService dataUpdateService) { diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/SetHeadersElement.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/SetHeadersElement.java index cb0f57a99..78d4c29ba 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/SetHeadersElement.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/SetHeadersElement.java @@ -74,6 +74,7 @@ public class SetHeadersElement private final List properties; private final Hashtable pipelineConfigs; + @SuppressWarnings("this-escape") public SetHeadersElement( Logger logger, ElementDataFactory elementDataFactory) { diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBase.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBase.java index d845387b2..8f64c2084 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBase.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBase.java @@ -410,7 +410,7 @@ protected ShareUsageBase( languageVersion = System.getProperty("java.version"); osVersion = System.getProperty("os.name"); - setEnginesVersion(getClass().getPackage().getImplementationVersion()); + this.enginesVersion = getClass().getPackage().getImplementationVersion(); coreVersion = Pipeline.class.getPackage().getImplementationVersion(); includedQueryStringParameters.add(Constants.EVIDENCE_SESSIONID_SUFFIX); diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java index 660586fc3..bad9c1bbd 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java @@ -30,6 +30,8 @@ import java.io.IOException; import java.net.HttpCookie; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.*; @@ -357,9 +359,9 @@ public ShareUsageBuilderBase setTakeTimeoutMillis(int milliseconds) { @DefaultValue(value="Send to 51D - " + Constants.SHARE_USAGE_DEFAULT_URL) public ShareUsageBuilderBase setShareUsageUrl(String shareUsageUrl) { try { - URL url = new URL(shareUsageUrl); + URL url = new URI(shareUsageUrl).toURL(); assert !url.toString().isEmpty(); - } catch (MalformedURLException e) { + } catch (MalformedURLException | URISyntaxException e) { throw new IllegalArgumentException(e); } this.shareUsageUrl = shareUsageUrl; diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageElement.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageElement.java index 8b08e7f70..b89097fcd 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageElement.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageElement.java @@ -37,7 +37,7 @@ import java.io.ByteArrayOutputStream; import java.io.OutputStream; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -545,7 +545,7 @@ protected void legacySendAsXML(List allData) throws Exception { streamXml(allData, os); } - HttpURLConnection connection = httpClient.connect(new URL(shareUsageUrl.trim())); + HttpURLConnection connection = httpClient.connect(new URI(shareUsageUrl.trim()).toURL()); String response = httpClient.postData(connection, headers, baos.toByteArray()); int responseCode = connection.getResponseCode(); String responseMessage = connection.getResponseMessage() + "data: '" + response + "'"; diff --git a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/interop/LibLoader.java b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/interop/LibLoader.java index 37741a85f..1492a34ba 100644 --- a/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/interop/LibLoader.java +++ b/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/interop/LibLoader.java @@ -129,6 +129,7 @@ public static String getLibName(Class engineClass) { * a native library for the environment * @throws IOException thrown if there is a problem copying the resource */ + @SuppressWarnings("restricted") public static void load(Class engineClass) throws IOException, UnsupportedOperationException { File nativeLibraryFile = copyResource( diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/data/AspectPropertyValueDefault.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/data/AspectPropertyValueDefault.java index a223400c6..9b059a025 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/data/AspectPropertyValueDefault.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/data/AspectPropertyValueDefault.java @@ -49,7 +49,8 @@ public AspectPropertyValueDefault() { * @param value the value to set */ public AspectPropertyValueDefault(T value) { - setValue(value); + this.hasValue = true; + this.value = value; } @Override diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/exceptions/PropertyMissingException.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/exceptions/PropertyMissingException.java index 5673e0d25..ece52d77f 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/exceptions/PropertyMissingException.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/exceptions/PropertyMissingException.java @@ -57,7 +57,7 @@ public PropertyMissingException( String propertyName, String message) { super(message); - this.setReason(reason); + this.reason = reason; this.propertyName = propertyName; } @@ -76,7 +76,7 @@ public PropertyMissingException( String message, Throwable cause) { super(message, cause); - this.setReason(reason); + this.reason = reason; this.propertyName = propertyName; } diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBase.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBase.java index ecefe1a80..58d7caa4a 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBase.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBase.java @@ -69,7 +69,7 @@ public OnPremiseAspectEngineBase( String tempDataDirPath) { super(logger, aspectDataFactory); this.dataFiles = new ArrayList<>(); - setTempDataDirPath(tempDataDirPath); + this.tempDataDirPath = tempDataDirPath; } @Override diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBuilderBase.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBuilderBase.java index a3b4867ac..37c9dc7c9 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBuilderBase.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/flowelements/OnPremiseAspectEngineBuilderBase.java @@ -99,7 +99,7 @@ public OnPremiseAspectEngineBuilderBase( createAndVerifyTempDir(Paths.get(tempDir)); } - public void createAndVerifyTempDir(Path pathToCreate) { + public final void createAndVerifyTempDir(Path pathToCreate) { try { File directory = pathToCreate.toFile(); if (isFalse(directory.exists())) { diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUpdateServiceDefault.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUpdateServiceDefault.java index cd8b33140..7430ea3cc 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUpdateServiceDefault.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUpdateServiceDefault.java @@ -43,7 +43,7 @@ import java.io.*; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.nio.file.*; import java.security.DigestInputStream; import java.security.MessageDigest; @@ -596,7 +596,7 @@ private AutoUpdateStatus downloadFile( logger.debug("downloadFile from {}", url); try { - HttpURLConnection connection = httpClient.connect(new URL(url.trim())); + HttpURLConnection connection = httpClient.connect(new URI(url.trim()).toURL()); if (connection == null) { logger.error("No response from data update service at '{}' for engine '{}'", dataFile.getFormattedUrl(), Objects.nonNull(dataFile.getEngine()) ? diff --git a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUploaderHttp.java b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUploaderHttp.java index 124140643..777584bf5 100644 --- a/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUploaderHttp.java +++ b/pipeline.engines/src/main/java/fiftyone/pipeline/engines/services/DataUploaderHttp.java @@ -25,7 +25,7 @@ import java.io.IOException; import java.io.OutputStream; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.Map; import java.util.zip.GZIPOutputStream; @@ -53,7 +53,7 @@ public DataUploaderHttp(String url, Map headers, int timeout) { */ @Override public OutputStream getOutputStream() throws Exception{ - connection = (HttpURLConnection) new URL(url.trim()).openConnection(); + connection = (HttpURLConnection) new URI(url.trim()).toURL().openConnection(); connection.setConnectTimeout(timeout); connection.setRequestMethod("POST"); for (Map.Entry header : headers.entrySet()) { diff --git a/pipeline.engines/src/test/java/fiftyone/pipeline/engines/services/HttpClientTests.java b/pipeline.engines/src/test/java/fiftyone/pipeline/engines/services/HttpClientTests.java index 6f8141186..f09b13400 100644 --- a/pipeline.engines/src/test/java/fiftyone/pipeline/engines/services/HttpClientTests.java +++ b/pipeline.engines/src/test/java/fiftyone/pipeline/engines/services/HttpClientTests.java @@ -28,7 +28,7 @@ import java.io.IOException; import java.net.HttpURLConnection; -import java.net.URL; +import java.net.URI; import java.util.HashMap; import java.util.Map; @@ -55,7 +55,7 @@ public void VerifyErrorHandling() { String result = null; try{ - HttpURLConnection connection = client.connect(new URL(testUrl)); + HttpURLConnection connection = client.connect(URI.create(testUrl).toURL()); result = client.getResponseString(connection); } catch (IOException ex) { assertTrue("Unexpected exception: " + ex.getMessage(), false); @@ -81,7 +81,7 @@ public void VerifyHeaders() { headers.put("Origin", "51degrees.com"); try{ - HttpURLConnection connection = client.connect(new URL(testUrl)); + HttpURLConnection connection = client.connect(URI.create(testUrl).toURL()); result = client.getResponseString(connection, headers); code = connection.getResponseCode(); } catch (IOException ex) { diff --git a/pipeline.engines/src/test/java/fiftyone/pipeline/engines/testhelpers/flowelements/EmptyEngine.java b/pipeline.engines/src/test/java/fiftyone/pipeline/engines/testhelpers/flowelements/EmptyEngine.java index ca6959927..0230799c7 100644 --- a/pipeline.engines/src/test/java/fiftyone/pipeline/engines/testhelpers/flowelements/EmptyEngine.java +++ b/pipeline.engines/src/test/java/fiftyone/pipeline/engines/testhelpers/flowelements/EmptyEngine.java @@ -47,8 +47,10 @@ public class EmptyEngine private EvidenceKeyFilterWhitelist evidenceWhitelist = new EvidenceKeyFilterWhitelist(Arrays.asList("test.value")); + @SuppressWarnings("this-escape") private final TypedKey typedKey = new TypedKeyDefault<>(getElementDataKey(), EmptyEngineData.class); + @SuppressWarnings("this-escape") public EmptyEngine( Logger logger, ElementDataFactory aspectDataFactory) { diff --git a/pipeline.jsonbuilder/src/main/java/fiftyone/pipeline/jsonbuilder/flowelements/JsonBuilderElement.java b/pipeline.jsonbuilder/src/main/java/fiftyone/pipeline/jsonbuilder/flowelements/JsonBuilderElement.java index 81a663c6d..23d4ddf6b 100644 --- a/pipeline.jsonbuilder/src/main/java/fiftyone/pipeline/jsonbuilder/flowelements/JsonBuilderElement.java +++ b/pipeline.jsonbuilder/src/main/java/fiftyone/pipeline/jsonbuilder/flowelements/JsonBuilderElement.java @@ -72,6 +72,7 @@ public class JsonBuilderElement * @param logger The logger. * @param elementDataFactory The element data factory. */ + @SuppressWarnings("this-escape") public JsonBuilderElement( Logger logger, ElementDataFactory elementDataFactory) { diff --git a/pipeline.web.packages/pipeline.web/src/main/java/fiftyone/pipeline/web/services/ClientsidePropertyServiceCore.java b/pipeline.web.packages/pipeline.web/src/main/java/fiftyone/pipeline/web/services/ClientsidePropertyServiceCore.java index 713ae1b04..67439d7cc 100644 --- a/pipeline.web.packages/pipeline.web/src/main/java/fiftyone/pipeline/web/services/ClientsidePropertyServiceCore.java +++ b/pipeline.web.packages/pipeline.web/src/main/java/fiftyone/pipeline/web/services/ClientsidePropertyServiceCore.java @@ -141,7 +141,7 @@ public Default( * Initialise the service. */ @SuppressWarnings("rawtypes") - protected void init() { + protected final void init() { headersAffectingJavaScript = new ArrayList<>(); // Get evidence filters for all elements. List filters = new ArrayList<>(); diff --git a/pom.xml b/pom.xml index 043e3bbd5..fdeb214d2 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ true -Xlint:all,-try,-options - + -Werror