This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 3c3e88cce7 NIFI-14796 Applied PMD rules InefficientEmptyStringCheck, 
StringInstantiation, StringToString, UselessStringValueOf and 
UseStringBufferForStringAppends (#10143)
3c3e88cce7 is described below

commit 3c3e88cce76569e2d53cddc84e3412328a63609d
Author: dan-s1 <[email protected]>
AuthorDate: Wed Jul 30 00:19:29 2025 -0400

    NIFI-14796 Applied PMD rules InefficientEmptyStringCheck, 
StringInstantiation, StringToString, UselessStringValueOf and 
UseStringBufferForStringAppends (#10143)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../minifi/properties/MiNiFiPropertiesLoader.java    |  2 +-
 .../evaluation/functions/IsEmptyEvaluator.java       |  2 +-
 .../functions/ReplaceByPatternEvaluator.java         |  6 +++---
 .../evaluation/functions/ReplaceEmptyEvaluator.java  |  2 +-
 .../java/org/apache/nifi/util/NiFiProperties.java    |  8 ++++----
 .../AbstractBootstrapPropertiesLoader.java           |  2 +-
 .../apache/nifi/properties/BootstrapProperties.java  |  2 +-
 .../org/apache/nifi/record/path/filter/IsBlank.java  |  2 +-
 .../nifi/remote/util/SiteToSiteRestApiClient.java    |  7 ++++---
 .../remote/util/TestSiteToSiteRestApiClient.java     |  2 +-
 .../nifi/util/file/classloader/ClassLoaderUtils.java |  2 +-
 .../org/apache/nifi/amqp/processors/AMQPWorker.java  |  2 +-
 .../org/apache/nifi/processors/aws/s3/ListS3.java    |  2 +-
 .../storage/queue/PutAzureQueueStorage_v12.java      |  2 +-
 .../box/ExtractStructuredBoxFileMetadata.java        |  4 ++--
 .../integration/AbstractElasticsearchITBase.java     |  2 +-
 .../evtx/parser/bxml/value/FiletimeTypeNode.java     |  2 +-
 .../parser/bxml/value/WStringArrayTypeNodeTest.java  | 20 ++++++++++----------
 .../util/file/transfer/PutFileTransfer.java          |  2 +-
 .../nifi/schema/access/AvroSchemaTextStrategy.java   |  2 +-
 .../schema/access/SchemaNamePropertyStrategy.java    |  2 +-
 .../nifi/processors/groovyx/util/Throwables.java     |  6 +++---
 .../nifi/processors/hadoop/KeyValueReader.java       |  2 +-
 .../apache/nifi/processors/hadoop/ValueReader.java   |  2 +-
 .../nifi/processors/hadoop/util/HDFSListing.java     |  2 +-
 .../nifi/processors/mongodb/RunMongoAggregation.java |  2 +-
 .../java/org/apache/nifi/py4j/PythonProcess.java     | 10 +++++-----
 .../apache/nifi/redis/state/RedisStateProvider.java  |  2 +-
 .../sink/TestSiteToSiteReportingRecordSink.java      |  4 ++--
 .../org/apache/nifi/processors/smb/PutSmbFile.java   | 12 ++++++------
 .../apache/nifi/processors/standard/CountText.java   |  2 +-
 .../nifi/processors/standard/EvaluateXQuery.java     |  2 +-
 .../standard/FetchDistributedMapCache.java           |  2 +-
 .../nifi/processors/standard/HandleHttpResponse.java |  4 ++--
 .../nifi/processors/standard/PutDatabaseRecord.java  |  2 +-
 .../org/apache/nifi/processors/standard/PutFile.java | 14 +++++++-------
 .../nifi/processors/standard/ScanAttribute.java      |  2 +-
 .../processors/standard/UpdateDatabaseTable.java     |  2 +-
 .../standard/servlets/ListenHTTPServlet.java         |  2 +-
 .../nifi/processors/standard/util/FTPTransfer.java   |  8 ++++----
 .../nifi/processors/standard/util/SFTPTransfer.java  |  8 ++++----
 .../processors/standard/PutDatabaseRecordTest.java   |  6 +++---
 .../nifi/processors/standard/TestEvaluateXQuery.java |  2 +-
 .../nifi/lookup/db/DatabaseRecordLookupService.java  |  2 +-
 .../java/org/apache/nifi/lookup/ReaderLookup.java    |  2 +-
 .../apache/nifi/lookup/RecordSetWriterLookup.java    |  2 +-
 .../nifi/processors/attributes/UpdateAttribute.java  |  2 +-
 .../attributes/UpdateAttributeModelFactory.java      |  2 +-
 .../authorization/AbstractPolicyBasedAuthorizer.java |  4 ++--
 .../org/apache/nifi/authorization/AccessPolicy.java  |  2 +-
 .../java/org/apache/nifi/authorization/Group.java    |  4 ++--
 .../java/org/apache/nifi/authorization/User.java     |  4 ++--
 .../nifi/authorization/resource/Authorizable.java    |  4 ++--
 .../org/apache/nifi/bundle/BundleCoordinate.java     |  2 +-
 .../src/main/java/org/apache/nifi/web/Revision.java  |  2 +-
 .../nifi/authorization/FileUserGroupProvider.java    |  2 +-
 .../nifi/cluster/protocol/ComponentRevision.java     |  2 +-
 .../cluster/zookeeper/ZooKeeperClientConfig.java     |  2 +-
 .../heartbeat/ClusterProtocolHeartbeatMonitor.java   |  4 ++--
 .../http/replication/io/ReplicatedResponse.java      |  2 +-
 .../firewall/impl/FileBasedClusterNodeFirewall.java  |  2 +-
 .../state/config/StateManagerConfiguration.java      |  4 ++--
 .../state/manager/StandardStateManagerProvider.java  |  2 +-
 .../java/org/apache/nifi/events/BulletinFactory.java |  7 ++++---
 .../serialization/FlowEncodingVersion.java           |  2 +-
 .../bootstrap/tasks/LongRunningProcessorTask.java    |  7 ++++---
 .../persistence/FlowConfigurationArchiveManager.java |  2 +-
 .../election/TrackedLeaderElectionManager.java       |  2 +-
 .../apache/nifi/properties/NiFiPropertiesLoader.java |  2 +-
 .../apache/nifi/web/StandardNiFiServiceFacade.java   |  2 +-
 .../apache/nifi/web/dao/impl/AbstractPortDAO.java    |  2 +-
 .../java/org/apache/nifi/web/util/SnippetUtils.java  | 10 +++++-----
 .../impl/StandardRuntimeManifestBuilder.java         |  6 +++---
 .../org/apache/nifi/util/MockProcessSession.java     |  2 +-
 .../bundle/extract/nar/NarBundleExtractor.java       |  2 +-
 .../nifi/registry/bundle/util/BundleUtils.java       |  2 +-
 .../apache/nifi/registry/params/SortParameter.java   |  2 +-
 .../authorization/AbstractPolicyBasedAuthorizer.java |  2 +-
 .../authorization/resource/Authorizable.java         |  4 ++--
 .../registry/security/util/ClassLoaderUtils.java     |  2 +-
 .../extension/docs/HtmlExtensionDocWriter.java       | 14 +++++++-------
 .../properties/NiFiRegistryPropertiesLoader.java     |  2 +-
 .../registry/properties/NiFiRegistryProperties.java  |  2 +-
 .../apache/nifi/registry/revision/api/Revision.java  |  2 +-
 .../revision/standard/StandardUpdateResult.java      |  4 ++--
 .../registry/revision/web/ClientIdParameter.java     |  2 +-
 .../entity/StandardRevisableEntityService.java       |  4 ++--
 .../security/authorization/AccessPolicy.java         |  2 +-
 .../nifi/registry/security/authorization/Group.java  |  4 ++--
 .../nifi/registry/security/authorization/User.java   |  4 ++--
 .../registry/web/service/StandardServiceFacade.java  |  2 +-
 .../PropertiesFileEngineConfigurationParser.java     |  8 ++++----
 .../stateless/bootstrap/BootstrapConfiguration.java  |  2 +-
 .../config/PropertiesFileFlowDefinitionParser.java   | 12 ++++++------
 .../stateless/engine/StandardStatelessEngine.java    |  4 ++--
 .../nifi/stateless/flow/StandardStatelessFlow.java   |  2 +-
 pmd-ruleset.xml                                      |  5 +++++
 97 files changed, 184 insertions(+), 176 deletions(-)

diff --git 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-properties-loader/src/main/java/org/apache/nifi/minifi/properties/MiNiFiPropertiesLoader.java
 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-properties-loader/src/main/java/org/apache/nifi/minifi/properties/MiNiFiPropertiesLoader.java
index 91ad422bff..5e2448f5c9 100644
--- 
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-properties-loader/src/main/java/org/apache/nifi/minifi/properties/MiNiFiPropertiesLoader.java
+++ 
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-properties-loader/src/main/java/org/apache/nifi/minifi/properties/MiNiFiPropertiesLoader.java
@@ -50,7 +50,7 @@ public class MiNiFiPropertiesLoader {
      * @see MiNiFiPropertiesLoader#load(File)
      */
     public NiFiProperties load(String path) {
-        if (path != null && !path.trim().isEmpty()) {
+        if (path != null && !path.isBlank()) {
             return load(new File(path));
         } else {
             return loadDefault();
diff --git 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java
 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java
index 228b7f5483..c483560fa9 100644
--- 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java
+++ 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/IsEmptyEvaluator.java
@@ -33,7 +33,7 @@ public class IsEmptyEvaluator extends BooleanEvaluator {
     @Override
     public QueryResult<Boolean> evaluate(final EvaluationContext 
evaluationContext) {
         final Object subjectValue = 
subjectEvaluator.evaluate(evaluationContext).getValue();
-        return new BooleanQueryResult(subjectValue == null || 
subjectValue.toString().trim().isEmpty());
+        return new BooleanQueryResult(subjectValue == null || 
subjectValue.toString().isBlank());
     }
 
     @Override
diff --git 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceByPatternEvaluator.java
 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceByPatternEvaluator.java
index 4184e8ec05..63d33c01d7 100644
--- 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceByPatternEvaluator.java
+++ 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceByPatternEvaluator.java
@@ -78,7 +78,7 @@ public class ReplaceByPatternEvaluator extends 
StringEvaluator {
 
     private List<PatternMapping> compilePatterns(final String argument) {
         final List<PatternMapping> result = new ArrayList<>();
-        if (argument == null || argument.trim().isEmpty()) {
+        if (argument == null || argument.isBlank()) {
             return result;
         }
 
@@ -88,11 +88,11 @@ public class ReplaceByPatternEvaluator extends 
StringEvaluator {
             String streamPattern = parts[0];
             String mappedTo = parts[1];
 
-            if (streamPattern == null || streamPattern.trim().isEmpty()) {
+            if (streamPattern == null || streamPattern.isBlank()) {
                 continue;
             }
 
-            if (mappedTo == null || mappedTo.trim().isEmpty()) {
+            if (mappedTo == null || mappedTo.isBlank()) {
                 continue;
             }
 
diff --git 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java
 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java
index 4157cc4611..55332d2e13 100644
--- 
a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java
+++ 
b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/ReplaceEmptyEvaluator.java
@@ -35,7 +35,7 @@ public class ReplaceEmptyEvaluator extends StringEvaluator {
     public QueryResult<String> evaluate(final EvaluationContext 
evaluationContext) {
         final QueryResult<String> subjectResult = 
subjectEvaluator.evaluate(evaluationContext);
         final String subjectValue = subjectResult.getValue();
-        final boolean isEmpty = subjectValue == null || 
subjectValue.toString().trim().isEmpty();
+        final boolean isEmpty = subjectValue == null || subjectValue.isBlank();
         if (isEmpty) {
             return replacementEvaluator.evaluate(evaluationContext);
         } else {
diff --git 
a/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java
 
b/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java
index cd3cd0b27e..b84ebfcc33 100644
--- 
a/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java
+++ 
b/nifi-commons/nifi-properties/src/main/java/org/apache/nifi/util/NiFiProperties.java
@@ -495,7 +495,7 @@ public class NiFiProperties extends ApplicationProperties {
 
     public Integer getIntegerProperty(final String propertyName, final Integer 
defaultValue) {
         final String value = getProperty(propertyName);
-        if (value == null || value.trim().isEmpty()) {
+        if (value == null || value.isBlank()) {
             return defaultValue;
         }
 
@@ -937,7 +937,7 @@ public class NiFiProperties extends ApplicationProperties {
 
     public File getKerberosConfigurationFile() {
         final String krb5File = getProperty(KERBEROS_KRB5_FILE);
-        if (krb5File != null && krb5File.trim().length() > 0) {
+        if (krb5File != null && !krb5File.isBlank()) {
             return new File(krb5File.trim());
         } else {
             return null;
@@ -1427,7 +1427,7 @@ public class NiFiProperties extends ApplicationProperties 
{
 
     public String getProperty(final String key, final String defaultValue) {
         final String value = getProperty(key);
-        return (value == null || value.trim().isEmpty()) ? defaultValue : 
value;
+        return (value == null || value.isBlank()) ? defaultValue : value;
     }
 
     public String getBoredYieldDuration() {
@@ -1639,7 +1639,7 @@ public class NiFiProperties extends ApplicationProperties 
{
         long backPressureCount;
         try {
             String backPressureCountStr = getProperty(BACKPRESSURE_COUNT);
-            if (backPressureCountStr == null || 
backPressureCountStr.trim().isEmpty()) {
+            if (backPressureCountStr == null || 
backPressureCountStr.isBlank()) {
                 backPressureCount = DEFAULT_BACKPRESSURE_COUNT;
             } else {
                 backPressureCount = Long.parseLong(backPressureCountStr);
diff --git 
a/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/AbstractBootstrapPropertiesLoader.java
 
b/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/AbstractBootstrapPropertiesLoader.java
index 710cc065d8..1132d01eba 100644
--- 
a/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/AbstractBootstrapPropertiesLoader.java
+++ 
b/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/AbstractBootstrapPropertiesLoader.java
@@ -128,7 +128,7 @@ public abstract class AbstractBootstrapPropertiesLoader {
 
         String systemPath = System.getProperty(systemPropertyName);
 
-        if (systemPath == null || systemPath.trim().isEmpty()) {
+        if (systemPath == null || systemPath.isBlank()) {
             systemPath = defaultRelativePath;
         }
 
diff --git 
a/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/BootstrapProperties.java
 
b/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/BootstrapProperties.java
index ea2f97580d..9981fddc55 100644
--- 
a/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/BootstrapProperties.java
+++ 
b/nifi-commons/nifi-property-utils/src/main/java/org/apache/nifi/properties/BootstrapProperties.java
@@ -83,6 +83,6 @@ public class BootstrapProperties extends 
StandardReadableProperties {
     }
 
     private static boolean isBlank(final String string) {
-        return (string == null) || string.isEmpty() || string.trim().isEmpty();
+        return (string == null) || string.isBlank();
     }
 }
diff --git 
a/nifi-commons/nifi-record-path/src/main/java/org/apache/nifi/record/path/filter/IsBlank.java
 
b/nifi-commons/nifi-record-path/src/main/java/org/apache/nifi/record/path/filter/IsBlank.java
index 93011f9d87..da459d835d 100644
--- 
a/nifi-commons/nifi-record-path/src/main/java/org/apache/nifi/record/path/filter/IsBlank.java
+++ 
b/nifi-commons/nifi-record-path/src/main/java/org/apache/nifi/record/path/filter/IsBlank.java
@@ -36,6 +36,6 @@ public class IsBlank extends FunctionFilter {
             return true;
         }
 
-        return fieldVal.trim().isEmpty();
+        return fieldVal.isBlank();
     }
 }
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 34f3dd29e4..8bcbd709ff 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
@@ -1338,10 +1338,11 @@ public class SiteToSiteRestApiClient implements 
Closeable {
             uriPath = uriPath.substring(0, uriPath.length() - 1);
         }
 
+        final StringBuilder uriPathBuilder = new StringBuilder(uriPath);
         if (uriPath.endsWith("/nifi")) {
-            uriPath += "-api";
+            uriPathBuilder.append("-api");
         } else if (!uriPath.endsWith("/nifi-api")) {
-            uriPath += "/nifi-api";
+            uriPathBuilder.append("/nifi-api");
         }
 
         try {
@@ -1349,7 +1350,7 @@ public class SiteToSiteRestApiClient implements Closeable 
{
                     .setScheme(clusterUrl.getScheme())
                     .setHost(clusterUrl.getHost())
                     .setPort(clusterUrl.getPort())
-                    .setPath(uriPath)
+                    .setPath(uriPathBuilder.toString())
                     .build()
                     .toString();
         } catch (URISyntaxException e) {
diff --git 
a/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/util/TestSiteToSiteRestApiClient.java
 
b/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/util/TestSiteToSiteRestApiClient.java
index 762d83e623..9c566ae0e6 100644
--- 
a/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/util/TestSiteToSiteRestApiClient.java
+++ 
b/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/util/TestSiteToSiteRestApiClient.java
@@ -30,7 +30,7 @@ public class TestSiteToSiteRestApiClient {
 
     private static void assertSingleUri(final String expected, final 
Set<String> urls) {
         assertEquals(1, urls.size());
-        assertEquals(expected, urls.iterator().next().toString());
+        assertEquals(expected, urls.iterator().next());
     }
 
     @Test
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 30663e3e29..ec251edde1 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
@@ -88,7 +88,7 @@ public class ClassLoaderUtils {
     }
 
     private static boolean isNotBlank(final String value) {
-        return value != null && !value.trim().isEmpty();
+        return value != null && !value.isBlank();
     }
 
     protected static URL[] toURLs(Set<String> modulePaths, FilenameFilter 
filenameFilter, boolean suppressExceptions) throws MalformedURLException {
diff --git 
a/nifi-extension-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPWorker.java
 
b/nifi-extension-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPWorker.java
index e621473646..b1c8466c83 100644
--- 
a/nifi-extension-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPWorker.java
+++ 
b/nifi-extension-bundles/nifi-amqp-bundle/nifi-amqp-processors/src/main/java/org/apache/nifi/amqp/processors/AMQPWorker.java
@@ -89,7 +89,7 @@ abstract class AMQPWorker implements AutoCloseable {
      * @param value the value of the property
      */
     void validateStringProperty(String propertyName, String value) {
-        if (value == null || value.trim().length() == 0) {
+        if (value == null || value.isBlank()) {
             throw new IllegalArgumentException("'" + propertyName + "' must 
not be null or empty");
         }
     }
diff --git 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/ListS3.java
 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/ListS3.java
index 70a652fc3a..49e1d74fd9 100644
--- 
a/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/ListS3.java
+++ 
b/nifi-extension-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/ListS3.java
@@ -1219,7 +1219,7 @@ public class ListS3 extends AbstractS3Processor 
implements VerifiableProcessor {
         final List<ConfigVerificationResult> results = new 
ArrayList<>(super.verify(context, logger, attributes));
         final String bucketName = 
context.getProperty(BUCKET_WITHOUT_DEFAULT_VALUE).evaluateAttributeExpressions(attributes).getValue();
 
-        if (bucketName == null || bucketName.trim().isEmpty()) {
+        if (bucketName == null || bucketName.isBlank()) {
             results.add(new ConfigVerificationResult.Builder()
                 .verificationStepName("Perform Listing")
                 .outcome(Outcome.FAILED)
diff --git 
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/queue/PutAzureQueueStorage_v12.java
 
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/queue/PutAzureQueueStorage_v12.java
index 4865f942d3..c05587eec9 100644
--- 
a/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/queue/PutAzureQueueStorage_v12.java
+++ 
b/nifi-extension-bundles/nifi-azure-bundle/nifi-azure-processors/src/main/java/org/apache/nifi/processors/azure/storage/queue/PutAzureQueueStorage_v12.java
@@ -153,6 +153,6 @@ public class PutAzureQueueStorage_v12 extends 
AbstractAzureQueueStorage_v12 {
 
         session.transfer(flowFile, REL_SUCCESS);
         final long transmissionMillis = 
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos);
-        session.getProvenanceReporter().send(flowFile, 
queueClient.getQueueUrl().toString(), transmissionMillis);
+        session.getProvenanceReporter().send(flowFile, 
queueClient.getQueueUrl(), transmissionMillis);
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
 
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
index 9663586077..418f9743fc 100644
--- 
a/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
+++ 
b/nifi-extension-bundles/nifi-box-bundle/nifi-box-processors/src/main/java/org/apache/nifi/processors/box/ExtractStructuredBoxFileMetadata.java
@@ -272,7 +272,7 @@ public class ExtractStructuredBoxFileMetadata extends 
AbstractProcessor {
         Record record;
         while ((record = recordReader.nextRecord()) != null) {
             final String key = record.getAsString("key");
-            if (key == null || key.trim().isEmpty()) {
+            if (key == null || key.isBlank()) {
                 throw new MalformedRecordException("Field record missing a key 
field: " + record);
             }
 
@@ -288,7 +288,7 @@ public class ExtractStructuredBoxFileMetadata extends 
AbstractProcessor {
                 for (Object option : iterable) {
                     if (option instanceof Record optionRecord) {
                         final String optionKey = 
optionRecord.getAsString("key");
-                        if (optionKey != null && !optionKey.trim().isEmpty()) {
+                        if (optionKey != null && !optionKey.isBlank()) {
                             options.add(new 
BoxAIExtractFieldOption(optionKey));
                         } else {
                             getLogger().warn("Option record missing a valid 
'key': {}", optionRecord);
diff --git 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java
 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java
index 7a92b46f03..28d4ba9e4a 100644
--- 
a/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java
+++ 
b/nifi-extension-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-test-utils/src/main/java/org/apache/nifi/elasticsearch/integration/AbstractElasticsearchITBase.java
@@ -183,7 +183,7 @@ public abstract class AbstractElasticsearchITBase {
         try (BufferedReader reader = new BufferedReader(new 
InputStreamReader(Files.newInputStream(Paths.get(scriptPath))))) {
             String line = reader.readLine();
             while (line != null) {
-                if (!line.trim().isEmpty() && !line.trim().startsWith("#")) {
+                if (!line.isBlank() && !line.trim().startsWith("#")) {
                     final String verb = line.substring(0, line.indexOf(":"));
                     final String path = line.substring(verb.length() + 1, 
line.indexOf(":", verb.length() + 1));
                     final int loc = verb.length() + path.length() + 2;
diff --git 
a/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/main/java/org/apache/nifi/processors/evtx/parser/bxml/value/FiletimeTypeNode.java
 
b/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/main/java/org/apache/nifi/processors/evtx/parser/bxml/value/FiletimeTypeNode.java
index 8b2e99072e..0fbede1662 100644
--- 
a/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/main/java/org/apache/nifi/processors/evtx/parser/bxml/value/FiletimeTypeNode.java
+++ 
b/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/main/java/org/apache/nifi/processors/evtx/parser/bxml/value/FiletimeTypeNode.java
@@ -40,6 +40,6 @@ public class FiletimeTypeNode extends VariantTypeNode {
 
     @Override
     public String getValue() {
-        return value.toString();
+        return value;
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/test/java/org/apache/nifi/processors/evtx/parser/bxml/value/WStringArrayTypeNodeTest.java
 
b/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/test/java/org/apache/nifi/processors/evtx/parser/bxml/value/WStringArrayTypeNodeTest.java
index 1f61f98356..1abd623ed9 100644
--- 
a/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/test/java/org/apache/nifi/processors/evtx/parser/bxml/value/WStringArrayTypeNodeTest.java
+++ 
b/nifi-extension-bundles/nifi-evtx-bundle/nifi-evtx-processors/src/test/java/org/apache/nifi/processors/evtx/parser/bxml/value/WStringArrayTypeNodeTest.java
@@ -28,26 +28,26 @@ public class WStringArrayTypeNodeTest extends 
BxmlNodeTestBase {
     @Test
     public void testWStringArrayTypeNodeLengthArg() throws IOException {
         String[] array = new String[]{"one", "two"};
-        String expected = "";
+        StringBuilder expected = new StringBuilder();
         for (String s : array) {
-            expected += "<string>";
-            expected += s;
-            expected += "</string>";
+            expected.append("<string>");
+            expected.append(s);
+            expected.append("</string>");
         }
         String actual = new 
WStringArrayTypeNode(testBinaryReaderBuilder.putWString(String.join("\u0000", 
array)).build(), chunkHeader, parent, 14).getValue();
-        assertEquals(expected, actual);
+        assertEquals(expected.toString(), actual);
     }
 
     @Test
     public void testWStringArrayTypeNodeNoLengthArg() throws IOException {
         String[] array = new String[]{"one", "two"};
-        String expected = "";
+        StringBuilder expected = new StringBuilder();
         for (String s : array) {
-            expected += "<string>";
-            expected += s;
-            expected += "</string>";
+            expected.append("<string>");
+            expected.append(s);
+            expected.append("</string>");
         }
         String actual = new 
WStringArrayTypeNode(testBinaryReaderBuilder.putWord(14).putWString(String.join("\u0000",
 array)).build(), chunkHeader, parent, -1).getValue();
-        assertEquals(expected, actual);
+        assertEquals(expected.toString(), actual);
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-extension-utils/nifi-file-transfer/src/main/java/org/apache/nifi/processor/util/file/transfer/PutFileTransfer.java
 
b/nifi-extension-bundles/nifi-extension-utils/nifi-file-transfer/src/main/java/org/apache/nifi/processor/util/file/transfer/PutFileTransfer.java
index 0d8b33cf81..2bfe88c447 100644
--- 
a/nifi-extension-bundles/nifi-extension-utils/nifi-file-transfer/src/main/java/org/apache/nifi/processor/util/file/transfer/PutFileTransfer.java
+++ 
b/nifi-extension-bundles/nifi-extension-utils/nifi-file-transfer/src/main/java/org/apache/nifi/processor/util/file/transfer/PutFileTransfer.java
@@ -135,7 +135,7 @@ public abstract class PutFileTransfer<T extends 
FileTransfer> extends AbstractPr
 
                     String fullPathWithSlash = fullPathRef.get();
                     if (!fullPathWithSlash.startsWith("/")) {
-                        fullPathWithSlash = "/" + fullPathWithSlash;
+                        fullPathWithSlash = "/" + fullPathWithSlash; // NOPMD
                     }
                     final String destinationUri = transfer.getProtocolName() + 
"://" + hostname + fullPathWithSlash;
                     session.getProvenanceReporter().send(flowFile, 
destinationUri, millis);
diff --git 
a/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/schema/access/AvroSchemaTextStrategy.java
 
b/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/schema/access/AvroSchemaTextStrategy.java
index 53a297f309..5d633b0c11 100644
--- 
a/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/schema/access/AvroSchemaTextStrategy.java
+++ 
b/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-avro-record-utils/src/main/java/org/apache/nifi/schema/access/AvroSchemaTextStrategy.java
@@ -43,7 +43,7 @@ public class AvroSchemaTextStrategy implements 
SchemaAccessStrategy {
     public RecordSchema getSchema(Map<String, String> variables, InputStream 
contentStream, RecordSchema readSchema) throws SchemaNotFoundException {
         final String schemaText;
         schemaText = 
schemaTextPropertyValue.evaluateAttributeExpressions(variables).getValue();
-        if (schemaText == null || schemaText.trim().isEmpty()) {
+        if (schemaText == null || schemaText.isBlank()) {
             throw new SchemaNotFoundException("FlowFile did not contain 
appropriate attributes to determine Schema Text");
         }
 
diff --git 
a/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/src/main/java/org/apache/nifi/schema/access/SchemaNamePropertyStrategy.java
 
b/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/src/main/java/org/apache/nifi/schema/access/SchemaNamePropertyStrategy.java
index 257fb588b0..c0fabbb921 100644
--- 
a/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/src/main/java/org/apache/nifi/schema/access/SchemaNamePropertyStrategy.java
+++ 
b/nifi-extension-bundles/nifi-extension-utils/nifi-record-utils/nifi-standard-record-utils/src/main/java/org/apache/nifi/schema/access/SchemaNamePropertyStrategy.java
@@ -54,7 +54,7 @@ public class SchemaNamePropertyStrategy implements 
SchemaAccessStrategy {
     @Override
     public RecordSchema getSchema(final Map<String, String> variables, final 
InputStream contentStream, final RecordSchema readSchema) throws 
SchemaNotFoundException {
         final String schemaName = 
schemaNamePropertyValue.evaluateAttributeExpressions(variables).getValue();
-        if (schemaName.trim().isEmpty()) {
+        if (schemaName.isBlank()) {
             throw new SchemaNotFoundException(String.format("%s did not 
provide appropriate Schema Name", schemaNamePropertyValue));
         }
 
diff --git 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Throwables.java
 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Throwables.java
index 455b080410..48b352addf 100644
--- 
a/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Throwables.java
+++ 
b/nifi-extension-bundles/nifi-groovyx-bundle/nifi-groovyx-processors/src/main/java/org/apache/nifi/processors/groovyx/util/Throwables.java
@@ -120,7 +120,7 @@ public class Throwables {
         msg = msg.trim();
         //append dot at the end if no others
         if (msg.length() > 0 && ".!:,;?".indexOf(msg.substring(msg.length() - 
1)) == -1) {
-            msg += ".";
+            msg += "."; // NOPMD
         }
 
         //exception class name without package
@@ -139,12 +139,12 @@ public class Throwables {
                 if (newlen < msg.length()) {
                     msg = msg.substring(0, newlen);
                 }
-                msg = msg + ".." + msgSuffix;
+                msg = msg + ".." + msgSuffix; // NOPMD
             } else if (msg.length() > maxlen) {
                 msg = msg.substring(0, maxlen);
             }
         } else {
-            msg = msg + msgSuffix;
+            msg = msg + msgSuffix; // NOPMD
         }
 
         return msg;
diff --git 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java
 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java
index 80c4792489..a2d11bd59f 100644
--- 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java
+++ 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/KeyValueReader.java
@@ -77,7 +77,7 @@ public class KeyValueReader implements 
SequenceFileReader<Set<FlowFile>> {
                     if (fileName.contains(File.separator)) {
                         fileName = StringUtils.substringAfterLast(fileName, 
File.separator);
                     }
-                    fileName = fileName + "." + System.nanoTime();
+                    fileName = fileName + "." + System.nanoTime(); // NOPMD
                 } else {
                     fileName = inputfileName + ++counter;
                 }
diff --git 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java
 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java
index e08fdee2fa..41839c0305 100644
--- 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java
+++ 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/ValueReader.java
@@ -75,7 +75,7 @@ public class ValueReader implements 
SequenceFileReader<Set<FlowFile>> {
                     if (fileName.contains(File.separator)) {
                         fileName = StringUtils.substringAfterLast(fileName, 
File.separator);
                     }
-                    fileName = fileName + "." + System.nanoTime();
+                    fileName = fileName + "." + System.nanoTime(); // NOPMD
                 } else {
                     fileName = inputfileName + ++counter;
                 }
diff --git 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java
 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java
index 420bcf9a01..7ccbc6cee8 100644
--- 
a/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java
+++ 
b/nifi-extension-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/util/HDFSListing.java
@@ -98,7 +98,7 @@ public class HDFSListing {
 
         int counter = 0;
         for (final String path : matchingPaths) {
-            map.put(StateKeys.PATH_PREFIX + String.valueOf(counter++), path);
+            map.put(StateKeys.PATH_PREFIX + counter++, path);
         }
 
         return map;
diff --git 
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
 
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
index 5156820490..480b08f679 100644
--- 
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
+++ 
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/RunMongoAggregation.java
@@ -161,7 +161,7 @@ public class RunMongoAggregation extends 
AbstractMongoProcessor {
         configureMapper(jsonTypeSetting, dateFormat);
 
         Map<String, String> attrs = new HashMap<>();
-        if (queryAttr != null && !queryAttr.trim().isEmpty()) {
+        if (queryAttr != null && !queryAttr.isBlank()) {
             attrs.put(queryAttr, query);
         }
 
diff --git 
a/nifi-extension-bundles/nifi-py4j-extension-bundle/nifi-py4j-bridge/src/main/java/org/apache/nifi/py4j/PythonProcess.java
 
b/nifi-extension-bundles/nifi-py4j-extension-bundle/nifi-py4j-bridge/src/main/java/org/apache/nifi/py4j/PythonProcess.java
index 4b5b6cc8cc..209cd66718 100644
--- 
a/nifi-extension-bundles/nifi-py4j-extension-bundle/nifi-py4j-bridge/src/main/java/org/apache/nifi/py4j/PythonProcess.java
+++ 
b/nifi-extension-bundles/nifi-py4j-extension-bundle/nifi-py4j-bridge/src/main/java/org/apache/nifi/py4j/PythonProcess.java
@@ -248,13 +248,13 @@ public class PythonProcess {
             commands.add("-S");
         }
 
-        String pythonPath = pythonApiDirectory.getAbsolutePath();
+        StringBuilder pythonPath = new 
StringBuilder(pythonApiDirectory.getAbsolutePath());
         final String absolutePath = virtualEnvHome.getAbsolutePath();
-        pythonPath = pythonPath + File.pathSeparator + absolutePath;
+        pythonPath.append(File.pathSeparator).append(absolutePath);
 
         if (isPackagedWithDependencies()) {
             final File dependenciesDir = new File(new File(absolutePath), 
"NAR-INF/bundled-dependencies");
-            pythonPath = pythonPath + File.pathSeparator + 
dependenciesDir.getAbsolutePath();
+            
pythonPath.append(File.pathSeparator).append(dependenciesDir.getAbsolutePath());
         }
 
         if (processConfig.isDebugController() && 
"Controller".equals(componentId)) {
@@ -264,7 +264,7 @@ public class PythonProcess {
             commands.add(processConfig.getDebugHost() + ":" + 
processConfig.getDebugPort());
             commands.add("--log-to-stderr");
 
-            pythonPath = pythonPath + File.pathSeparator + 
virtualEnvHome.getAbsolutePath();
+            
pythonPath.append(File.pathSeparator).append(virtualEnvHome.getAbsolutePath());
         }
 
         commands.add(controllerPyFile.getAbsolutePath());
@@ -272,7 +272,7 @@ public class PythonProcess {
 
         processBuilder.environment().put("JAVA_PORT", 
String.valueOf(listeningPort));
         processBuilder.environment().put("ENV_HOME", 
virtualEnvHome.getAbsolutePath());
-        processBuilder.environment().put("PYTHONPATH", pythonPath);
+        processBuilder.environment().put("PYTHONPATH", pythonPath.toString());
         processBuilder.environment().put("PYTHON_CMD", pythonCommand);
         processBuilder.environment().put("AUTH_TOKEN", authToken);
 
diff --git 
a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/main/java/org/apache/nifi/redis/state/RedisStateProvider.java
 
b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/main/java/org/apache/nifi/redis/state/RedisStateProvider.java
index 186a83e9cb..b26645dc06 100644
--- 
a/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/main/java/org/apache/nifi/redis/state/RedisStateProvider.java
+++ 
b/nifi-extension-bundles/nifi-redis-bundle/nifi-redis-extensions/src/main/java/org/apache/nifi/redis/state/RedisStateProvider.java
@@ -121,7 +121,7 @@ public class RedisStateProvider extends 
AbstractConfigurableComponent implements
 
         String keyPrefix = context.getProperty(KEY_PREFIX).getValue();
         if (!keyPrefix.endsWith("/")) {
-            keyPrefix = keyPrefix + "/";
+            keyPrefix = keyPrefix + "/"; // NOPMD
         }
         this.keyPrefix = keyPrefix;
 
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/sink/TestSiteToSiteReportingRecordSink.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/sink/TestSiteToSiteReportingRecordSink.java
index cb546ab078..a44e556200 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/sink/TestSiteToSiteReportingRecordSink.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/test/java/org/apache/nifi/reporting/sink/TestSiteToSiteReportingRecordSink.java
@@ -91,10 +91,10 @@ public class TestSiteToSiteReportingRecordSink {
         String[] lines = new String(task.dataSent.get(0)).split("\n");
         assertNotNull(lines);
         assertEquals(2, lines.length);
-        String[] data = new String(lines[0]).split(",");
+        String[] data = lines[0].split(",");
         assertEquals("15", data[0]); // In the MockRecordWriter all values are 
strings
         assertEquals("Hello", data[1]);
-        data = new String(lines[1]).split(",");
+        data = lines[1].split(",");
         assertEquals("6", data[0]);
         assertEquals("World!", data[1]);
     }
diff --git 
a/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/PutSmbFile.java
 
b/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/PutSmbFile.java
index c2e2e2245f..9ca465a324 100644
--- 
a/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/PutSmbFile.java
+++ 
b/nifi-extension-bundles/nifi-smb-bundle/nifi-smb-processors/src/main/java/org/apache/nifi/processors/smb/PutSmbFile.java
@@ -309,7 +309,7 @@ public class PutSmbFile extends AbstractProcessor {
                 String destinationFullPath;
 
                 // build destination path for the flowfile
-                if (destinationDirectory == null || 
destinationDirectory.trim().isEmpty()) {
+                if (destinationDirectory == null || 
destinationDirectory.isBlank()) {
                     destinationFullPath = destinationFilename;
                 } else {
                     destinationFullPath = new 
java.io.File(destinationDirectory, destinationFilename).getPath();
@@ -344,16 +344,16 @@ public class PutSmbFile extends AbstractProcessor {
 
                 // handle temporary suffix
                 final String renameSuffixValue = 
context.getProperty(RENAME_SUFFIX).getValue();
-                final Boolean renameSuffix = renameSuffixValue != null && 
!renameSuffixValue.trim().isEmpty();
-                String finalDestinationFullPath = destinationFullPath;
+                final boolean renameSuffix = renameSuffixValue != null && 
!renameSuffixValue.isBlank();
+                StringBuilder finalDestinationFullPath = new 
StringBuilder(destinationFullPath);
                 if (renameSuffix) {
-                    finalDestinationFullPath += renameSuffixValue;
+                    finalDestinationFullPath.append(renameSuffixValue);
                 }
 
                 // handle the transfer
                 try (
                     File shareDestinationFile = share.openFile(
-                        finalDestinationFullPath,
+                        finalDestinationFullPath.toString(),
                         EnumSet.of(AccessMask.GENERIC_WRITE),
                         EnumSet.of(FileAttributes.FILE_ATTRIBUTE_NORMAL),
                         sharedAccess,
@@ -371,7 +371,7 @@ public class PutSmbFile extends AbstractProcessor {
                 // handle the rename
                 if (renameSuffix) {
                     try (DiskEntry fileDiskEntry = share.open(
-                        finalDestinationFullPath,
+                        finalDestinationFullPath.toString(),
                         EnumSet.of(AccessMask.DELETE, 
AccessMask.GENERIC_WRITE),
                         EnumSet.of(FileAttributes.FILE_ATTRIBUTE_NORMAL),
                         sharedAccess,
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CountText.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CountText.java
index 908c0ebf77..f9fc1a481f 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CountText.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CountText.java
@@ -318,7 +318,7 @@ public class CountText extends AbstractProcessor {
             return 0;
         } else {
             Pattern regex = splitWordsOnSymbols ? SYMBOL_PATTERN : 
WHITESPACE_ONLY_PATTERN;
-            final Stream<String> wordsStream = 
regex.splitAsStream(line).filter(item -> !item.trim().isEmpty());
+            final Stream<String> wordsStream = 
regex.splitAsStream(line).filter(item -> !item.isBlank());
             if (getLogger().isDebugEnabled()) {
                 final List<String> words = 
wordsStream.collect(Collectors.toList());
                 getLogger().debug("Split [{}] to [{}] ({})", line, 
StringUtils.join(words, ", "), words.size());
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
index fc03ccdc07..a8c7f2e638 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
@@ -290,7 +290,7 @@ public class EvaluateXQuery extends AbstractProcessor {
                             String value = formatItem(item, context);
                             String attributeName = entry.getKey();
                             if (result.size() > 1) {
-                                attributeName += "." + index++;
+                                attributeName += "." + index++; //NOPMD
                             }
                             xQueryResults.put(attributeName, value);
                         }
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchDistributedMapCache.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchDistributedMapCache.java
index fd04eb6036..13a88515a7 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchDistributedMapCache.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/FetchDistributedMapCache.java
@@ -240,7 +240,7 @@ public class FetchDistributedMapCache extends 
AbstractProcessor {
                         String attributeName = 
context.getProperty(PUT_CACHE_VALUE_IN_ATTRIBUTE).evaluateAttributeExpressions(flowFile).getValue();
                         if (!singleKey) {
                             // Append key to attribute name if multiple keys
-                            attributeName += "." + cacheValueEntry.getKey();
+                            attributeName += "." + cacheValueEntry.getKey(); 
//NOPMD
                         }
                         String attributeValue = new String(cacheValue, 
context.getProperty(CHARACTER_SET).getValue());
 
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
index 771c1f51fb..0506d20251 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
@@ -165,7 +165,7 @@ public class HandleHttpResponse extends AbstractProcessor {
                 final String headerName = descriptor.getName();
                 final String headerValue = 
context.getProperty(descriptor).evaluateAttributeExpressions(flowFile).getValue();
 
-                if (!headerValue.trim().isEmpty()) {
+                if (!headerValue.isBlank()) {
                     response.setHeader(headerName, headerValue);
                 }
             }
@@ -179,7 +179,7 @@ public class HandleHttpResponse extends AbstractProcessor {
             for (final Map.Entry<String, String> entry : 
attributes.entrySet()) {
                 final String key = entry.getKey();
                 if (pattern.matcher(key).matches()) {
-                    if (!entry.getValue().trim().isEmpty()) {
+                    if (!entry.getValue().isBlank()) {
                         response.setHeader(entry.getKey(), entry.getValue());
                     }
                 }
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutDatabaseRecord.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutDatabaseRecord.java
index bf8f214ca2..025aaf9030 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutDatabaseRecord.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutDatabaseRecord.java
@@ -1162,7 +1162,7 @@ public class PutDatabaseRecord extends AbstractProcessor {
     }
 
     private String validateStatementType(final String statementType, final 
FlowFile flowFile) {
-        if (statementType == null || statementType.trim().isEmpty()) {
+        if (statementType == null || statementType.isBlank()) {
             throw new ProcessException("No Statement Type specified for " + 
flowFile);
         }
 
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
index 446195986c..6dc9ed67ac 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
@@ -224,7 +224,7 @@ public class PutFile extends AbstractProcessor {
                     while (!Files.exists(existing)) {
                         existing = existing.getParent();
                     }
-                    if (permissions != null && !permissions.trim().isEmpty()) {
+                    if (permissions != null && !permissions.isBlank()) {
                         try {
                             String perms = stringPermissions(permissions, 
true);
                             if (!perms.isEmpty()) {
@@ -242,8 +242,8 @@ public class PutFile extends AbstractProcessor {
                         Files.createDirectories(rootDirPath);
                     }
 
-                    boolean chOwner = owner != null && !owner.trim().isEmpty();
-                    boolean chGroup = group != null && !group.trim().isEmpty();
+                    boolean chOwner = owner != null && !owner.isBlank();
+                    boolean chGroup = group != null && !group.isBlank();
                     if (chOwner || chGroup) {
                         Path currentPath = rootDirPath;
                         while (!currentPath.equals(existing)) {
@@ -316,7 +316,7 @@ public class PutFile extends AbstractProcessor {
             session.exportTo(flowFile, dotCopyFile, false);
 
             final String lastModifiedTime = 
context.getProperty(CHANGE_LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-            if (lastModifiedTime != null && 
!lastModifiedTime.trim().isEmpty()) {
+            if (lastModifiedTime != null && !lastModifiedTime.isBlank()) {
                 try {
                     final OffsetDateTime fileModifyTime = 
OffsetDateTime.parse(lastModifiedTime, DATE_TIME_FORMATTER);
                     
dotCopyFile.toFile().setLastModified(fileModifyTime.toInstant().toEpochMilli());
@@ -325,7 +325,7 @@ public class PutFile extends AbstractProcessor {
                 }
             }
 
-            if (permissions != null && !permissions.trim().isEmpty()) {
+            if (permissions != null && !permissions.isBlank()) {
                 try {
                     String perms = stringPermissions(permissions, false);
                     if (!perms.isEmpty()) {
@@ -336,7 +336,7 @@ public class PutFile extends AbstractProcessor {
                 }
             }
 
-            if (owner != null && !owner.trim().isEmpty()) {
+            if (owner != null && !owner.isBlank()) {
                 try {
                     UserPrincipalLookupService lookupService = 
dotCopyFile.getFileSystem().getUserPrincipalLookupService();
                     Files.setOwner(dotCopyFile, 
lookupService.lookupPrincipalByName(owner));
@@ -345,7 +345,7 @@ public class PutFile extends AbstractProcessor {
                 }
             }
 
-            if (group != null && !group.trim().isEmpty()) {
+            if (group != null && !group.isBlank()) {
                 try {
                     UserPrincipalLookupService lookupService = 
dotCopyFile.getFileSystem().getUserPrincipalLookupService();
                     PosixFileAttributeView view = 
Files.getFileAttributeView(dotCopyFile, PosixFileAttributeView.class);
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
index 93c67929c8..c2f4569a66 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
@@ -151,7 +151,7 @@ public class ScanAttribute extends AbstractProcessor {
 
             String line;
             while ((line = reader.readLine()) != null) {
-                if (line.trim().isEmpty()) {
+                if (line.isBlank()) {
                     continue;
                 }
 
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UpdateDatabaseTable.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UpdateDatabaseTable.java
index 94c59b45e3..9b8e37e851 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UpdateDatabaseTable.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UpdateDatabaseTable.java
@@ -414,7 +414,7 @@ public class UpdateDatabaseTable extends AbstractProcessor {
                 if (createIfNotExists && primaryKeyFields != null) {
                     primaryKeyColumnNames = new HashSet<>();
                     Arrays.stream(primaryKeyFields.split(","))
-                            .filter(path -> path != null && 
!path.trim().isEmpty())
+                            .filter(path -> path != null && !path.isBlank())
                             .map(String::trim)
                             .forEach(primaryKeyColumnNames::add);
                 } else {
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
index e3262d355d..5eb95b4b60 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
@@ -364,7 +364,7 @@ public class ListenHTTPServlet extends HttpServlet {
 
             String sourceSystemFlowFileIdentifier = 
attributes.remove(CoreAttributes.UUID.key());
             if (sourceSystemFlowFileIdentifier != null) {
-                sourceSystemFlowFileIdentifier = "urn:nifi:" + 
sourceSystemFlowFileIdentifier;
+                sourceSystemFlowFileIdentifier = "urn:nifi:" + 
sourceSystemFlowFileIdentifier; //NOPMD
             }
 
             flowFile = session.putAllAttributes(flowFile, attributes);
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
index fa4120a435..cffe54521c 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
@@ -218,12 +218,12 @@ public class FTPTransfer implements FileTransfer {
         int count = 0;
         final FTPFile[] files;
 
-        if (path == null || path.trim().isEmpty()) {
+        if (path == null || path.isBlank()) {
             files = client.listFiles(".");
         } else {
             files = client.listFiles(path);
         }
-        if (files.length == 0 && path != null && !path.trim().isEmpty()) {
+        if (files.length == 0 && path != null && !path.isBlank()) {
             // throw exception if directory doesn't exist
             final boolean cdSuccessful = setWorkingDirectory(path);
             if (!cdSuccessful) {
@@ -421,7 +421,7 @@ public class FTPTransfer implements FileTransfer {
         }
 
         final String lastModifiedTime = 
ctx.getProperty(LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-        if (lastModifiedTime != null && !lastModifiedTime.trim().isEmpty()) {
+        if (lastModifiedTime != null && !lastModifiedTime.isBlank()) {
             try {
                 final DateTimeFormatter informat = 
DateTimeFormatter.ofPattern(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
                 final OffsetDateTime fileModifyTime = 
OffsetDateTime.parse(lastModifiedTime, informat);
@@ -436,7 +436,7 @@ public class FTPTransfer implements FileTransfer {
             }
         }
         final String permissions = 
ctx.getProperty(PERMISSIONS).evaluateAttributeExpressions(flowFile).getValue();
-        if (permissions != null && !permissions.trim().isEmpty()) {
+        if (permissions != null && !permissions.isBlank()) {
             try {
                 int perms = numberPermissions(permissions);
                 if (perms >= 0) {
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
index c216d078ce..7d0f095875 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
@@ -713,7 +713,7 @@ public class SFTPTransfer implements FileTransfer {
 
         int perms;
         final String permissions = 
ctx.getProperty(PERMISSIONS).evaluateAttributeExpressions(flowFile).getValue();
-        if (permissions == null || permissions.trim().isEmpty()) {
+        if (permissions == null || permissions.isBlank()) {
             sftpClient.getFileTransfer().setPreserveAttributes(false); //We 
will accept whatever the default permissions are of the destination
             perms = 0;
         } else {
@@ -729,7 +729,7 @@ public class SFTPTransfer implements FileTransfer {
         }
 
         final String lastModifiedTime = 
ctx.getProperty(LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-        if (lastModifiedTime != null && !lastModifiedTime.trim().isEmpty()) {
+        if (lastModifiedTime != null && !lastModifiedTime.isBlank()) {
             try {
                 final DateTimeFormatter dateTimeFormatter = 
DateTimeFormatter.ofPattern(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
                 final OffsetDateTime offsetDateTime = 
OffsetDateTime.parse(lastModifiedTime, dateTimeFormatter);
@@ -748,7 +748,7 @@ public class SFTPTransfer implements FileTransfer {
         }
 
         final String owner = 
ctx.getProperty(REMOTE_OWNER).evaluateAttributeExpressions(flowFile).getValue();
-        if (owner != null && !owner.trim().isEmpty()) {
+        if (owner != null && !owner.isBlank()) {
             try {
                 sftpClient.chown(tempPath, Integer.parseInt(owner));
             } catch (final Exception e) {
@@ -757,7 +757,7 @@ public class SFTPTransfer implements FileTransfer {
         }
 
         final String group = 
ctx.getProperty(REMOTE_GROUP).evaluateAttributeExpressions(flowFile).getValue();
-        if (group != null && !group.trim().isEmpty()) {
+        if (group != null && !group.isBlank()) {
             try {
                 sftpClient.chgrp(tempPath, Integer.parseInt(group));
             } catch (final Exception e) {
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/PutDatabaseRecordTest.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/PutDatabaseRecordTest.java
index c01acd11d7..2e61a679a3 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/PutDatabaseRecordTest.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/PutDatabaseRecordTest.java
@@ -2481,9 +2481,9 @@ public class PutDatabaseRecordTest {
 
         @Override
         public String toString() {
-            return "autoCommit=" + String.valueOf(autoCommit) +
-                    "; rollbackOnFailure=" + String.valueOf(rollbackOnFailure) 
+
-                    "; batchSize=" + String.valueOf(batchSize);
+            return "autoCommit=" + autoCommit +
+                    "; rollbackOnFailure=" + rollbackOnFailure +
+                    "; batchSize=" + batchSize;
         }
     }
 }
diff --git 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
index e77cae0fc1..eb64fdd609 100644
--- 
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
+++ 
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
@@ -305,7 +305,7 @@ public class TestEvaluateXQuery {
         for (int i = 0; i < expectedResults.size(); i++) {
             String key = "xquery";
             if (expectedResults.size() > 1) {
-                key += "." + (i + 1);
+                key += "." + (i + 1); //NOPMD
             }
             final String actual = out.getAttribute(key).replaceAll(">\\s+<", 
"><");
             final String expected = 
expectedResults.get(i).replaceAll(">\\s+<", "><");
diff --git 
a/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/db/DatabaseRecordLookupService.java
 
b/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/db/DatabaseRecordLookupService.java
index 2cd22a5a26..9e416c228b 100644
--- 
a/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/db/DatabaseRecordLookupService.java
+++ 
b/nifi-extension-bundles/nifi-standard-services/nifi-lookup-services-bundle/nifi-lookup-services/src/main/java/org/apache/nifi/lookup/db/DatabaseRecordLookupService.java
@@ -187,7 +187,7 @@ public class DatabaseRecordLookupService extends 
AbstractDatabaseLookupService i
     }
 
     private static boolean isNotBlank(final String value) {
-        return value != null && !value.trim().isEmpty();
+        return value != null && !value.isBlank();
     }
 
     @Override
diff --git 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/ReaderLookup.java
 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/ReaderLookup.java
index 0f2231cb6e..b52fe287d0 100644
--- 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/ReaderLookup.java
+++ 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/ReaderLookup.java
@@ -153,7 +153,7 @@ public class ReaderLookup extends AbstractControllerService 
implements RecordRea
                 throws MalformedRecordException, IOException, 
SchemaNotFoundException {
 
         final String serviceName = 
serviceToUseValue.evaluateAttributeExpressions(variables).getValue();
-        if (serviceName.trim().isEmpty()) {
+        if (serviceName.isBlank()) {
             throw new ProcessException("Unable to determine which Record 
Reader to use: after evaluating the property value against supplied variables, 
got an empty value");
         }
 
diff --git 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/RecordSetWriterLookup.java
 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/RecordSetWriterLookup.java
index 3d00fa8a24..47257a1d6c 100644
--- 
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/RecordSetWriterLookup.java
+++ 
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/lookup/RecordSetWriterLookup.java
@@ -159,7 +159,7 @@ public class RecordSetWriterLookup extends 
AbstractControllerService implements
 
     private RecordSetWriterFactory getRecordSetWriterFactory(Map<String, 
String> variables) {
         final String serviceName = 
serviceToUseValue.evaluateAttributeExpressions(variables).getValue();
-        if (serviceName.trim().isEmpty()) {
+        if (serviceName.isBlank()) {
             throw new ProcessException("Unable to determine which Record 
Writer to use: after evaluating the property value against supplied variables, 
got an empty value");
         }
 
diff --git 
a/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java
 
b/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java
index b1f654b800..da1b39ac91 100644
--- 
a/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java
+++ 
b/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/src/main/java/org/apache/nifi/processors/attributes/UpdateAttribute.java
@@ -363,7 +363,7 @@ public class UpdateAttribute extends AbstractProcessor 
implements Searchable {
             } else {
                 // validate the each rule
                 for (final Rule rule : rules) {
-                    if (rule.getName() == null || 
rule.getName().trim().isEmpty()) {
+                    if (rule.getName() == null || rule.getName().isBlank()) {
                         reasons.add(new 
ValidationResult.Builder().valid(false).explanation("A rule name was not 
specified.").build());
                     }
 
diff --git 
a/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java
 
b/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java
index 504652aecc..315bb80df5 100644
--- 
a/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java
+++ 
b/nifi-extension-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/src/main/java/org/apache/nifi/update/attributes/UpdateAttributeModelFactory.java
@@ -43,7 +43,7 @@ public class UpdateAttributeModelFactory {
         if (dto.getName() == null) {
             throw new IllegalArgumentException("Rule name must be specified.");
         }
-        if (dto.getName().trim().isEmpty()) {
+        if (dto.getName().isBlank()) {
             throw new IllegalArgumentException("Rule name cannot be blank.");
         }
 
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
index c4eead28c4..7f1d55a10b 100644
--- 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
+++ 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
@@ -382,7 +382,7 @@ public abstract class AbstractPolicyBasedAuthorizer 
implements ManagedAuthorizer
      */
     @Override
     public final void inheritFingerprint(final String fingerprint) throws 
AuthorizationAccessException {
-        if (fingerprint == null || fingerprint.trim().isEmpty()) {
+        if (fingerprint == null || fingerprint.isBlank()) {
             return;
         }
 
@@ -402,7 +402,7 @@ public abstract class AbstractPolicyBasedAuthorizer 
implements ManagedAuthorizer
 
     @Override
     public void forciblyInheritFingerprint(final String fingerprint) throws 
AuthorizationAccessException {
-        if (fingerprint == null || fingerprint.trim().isEmpty()) {
+        if (fingerprint == null || fingerprint.isBlank()) {
             logger.info("Inheriting Empty Policies, Users & Groups. Will 
backup existing Policies, Users & Groups first.");
             backupPoliciesUsersAndGroups();
             purgePoliciesUsersAndGroups();
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AccessPolicy.java
 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AccessPolicy.java
index 1a7f751945..a0f43ff1f1 100644
--- 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AccessPolicy.java
+++ 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AccessPolicy.java
@@ -45,7 +45,7 @@ public class AccessPolicy {
         this.users = Collections.unmodifiableSet(new HashSet<>(builder.users));
         this.groups = Collections.unmodifiableSet(new 
HashSet<>(builder.groups));
 
-        if (this.identifier == null || this.identifier.trim().isEmpty()) {
+        if (this.identifier == null || this.identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/Group.java 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/Group.java
index 72e03c6802..a54945536d 100644
--- a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/Group.java
+++ b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/Group.java
@@ -39,11 +39,11 @@ public class Group { // TODO rename to UserGroup
         this.name = builder.name;
         this.users = Collections.unmodifiableSet(new HashSet<>(builder.users));
 
-        if (this.identifier == null || this.identifier.trim().isEmpty()) {
+        if (this.identifier == null || this.identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
-        if (this.name == null || this.name.trim().isEmpty()) {
+        if (this.name == null || this.name.isBlank()) {
             throw new IllegalArgumentException("Name can not be null or 
empty");
         }
     }
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/User.java 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/User.java
index 83368eaf59..330e553be3 100644
--- a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/User.java
+++ b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/User.java
@@ -33,11 +33,11 @@ public class User {
         this.identifier = builder.identifier;
         this.identity = builder.identity;
 
-        if (identifier == null || identifier.trim().isEmpty()) {
+        if (identifier == null || identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
-        if (identity == null || identity.trim().isEmpty()) {
+        if (identity == null || identity.isBlank()) {
             throw new IllegalArgumentException("Identity can not be null or 
empty");
         }
 
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/resource/Authorizable.java
 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/resource/Authorizable.java
index 648744124e..601a4cde2f 100644
--- 
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/resource/Authorizable.java
+++ 
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/resource/Authorizable.java
@@ -86,7 +86,7 @@ public interface Authorizable {
         }
 
         final Map<String, String> userContext;
-        if (user.getClientAddress() != null && 
!user.getClientAddress().trim().isEmpty()) {
+        if (user.getClientAddress() != null && 
!user.getClientAddress().isBlank()) {
             userContext = new HashMap<>();
             userContext.put(UserContextKeys.CLIENT_ADDRESS.name(), 
user.getClientAddress());
         } else {
@@ -198,7 +198,7 @@ public interface Authorizable {
         }
 
         final Map<String, String> userContext;
-        if (user.getClientAddress() != null && 
!user.getClientAddress().trim().isEmpty()) {
+        if (user.getClientAddress() != null && 
!user.getClientAddress().isBlank()) {
             userContext = new HashMap<>();
             userContext.put(UserContextKeys.CLIENT_ADDRESS.name(), 
user.getClientAddress());
         } else {
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/bundle/BundleCoordinate.java 
b/nifi-framework-api/src/main/java/org/apache/nifi/bundle/BundleCoordinate.java
index efb0d484e1..4ee42b2940 100644
--- 
a/nifi-framework-api/src/main/java/org/apache/nifi/bundle/BundleCoordinate.java
+++ 
b/nifi-framework-api/src/main/java/org/apache/nifi/bundle/BundleCoordinate.java
@@ -44,7 +44,7 @@ public class BundleCoordinate {
     }
 
     private boolean isBlank(String str) {
-        return str == null || str.trim().length() == 0;
+        return str == null || str.isBlank();
     }
 
     public String getGroup() {
diff --git a/nifi-framework-api/src/main/java/org/apache/nifi/web/Revision.java 
b/nifi-framework-api/src/main/java/org/apache/nifi/web/Revision.java
index d768faa409..263e359b53 100644
--- a/nifi-framework-api/src/main/java/org/apache/nifi/web/Revision.java
+++ b/nifi-framework-api/src/main/java/org/apache/nifi/web/Revision.java
@@ -108,7 +108,7 @@ public class Revision implements Serializable {
         if (this.version != null && this.version.equals(thatRevision.version)) 
{
             return true;
         } else {
-            return clientId != null && !clientId.trim().isEmpty() && 
clientId.equals(thatRevision.getClientId());
+            return clientId != null && !clientId.isBlank() && 
clientId.equals(thatRevision.getClientId());
         }
 
     }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-file-authorizer/src/main/java/org/apache/nifi/authorization/FileUserGroupProvider.java
 
b/nifi-framework-bundle/nifi-framework/nifi-file-authorizer/src/main/java/org/apache/nifi/authorization/FileUserGroupProvider.java
index c72e8b38a2..dd5ecb2fee 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-file-authorizer/src/main/java/org/apache/nifi/authorization/FileUserGroupProvider.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-file-authorizer/src/main/java/org/apache/nifi/authorization/FileUserGroupProvider.java
@@ -477,7 +477,7 @@ public class FileUserGroupProvider implements 
ConfigurableUserGroupProvider {
 
     @Override
     public synchronized void forciblyInheritFingerprint(final String 
fingerprint) throws AuthorizationAccessException {
-        if (fingerprint == null || fingerprint.trim().isEmpty()) {
+        if (fingerprint == null || fingerprint.isBlank()) {
             logger.info("Inheriting Empty Users & Groups. Will backup existing 
Uesrs & Groups first.");
             backupUsersAndGroups();
             purgeUsersAndGroups();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ComponentRevision.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ComponentRevision.java
index 5c5257a00f..f88b245ab9 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ComponentRevision.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/src/main/java/org/apache/nifi/cluster/protocol/ComponentRevision.java
@@ -88,7 +88,7 @@ public class ComponentRevision {
         if (this.version != null && this.version.equals(thatRevision.version)) 
{
             return true;
         } else {
-            return clientId != null && !clientId.trim().isEmpty() && 
clientId.equals(thatRevision.getClientId());
+            return clientId != null && !clientId.isBlank() && 
clientId.equals(thatRevision.getClientId());
         }
 
     }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-zookeeper/src/main/java/org/apache/nifi/framework/cluster/zookeeper/ZooKeeperClientConfig.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-zookeeper/src/main/java/org/apache/nifi/framework/cluster/zookeeper/ZooKeeperClientConfig.java
index 0539dc5305..3b4da9b830 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-zookeeper/src/main/java/org/apache/nifi/framework/cluster/zookeeper/ZooKeeperClientConfig.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-zookeeper/src/main/java/org/apache/nifi/framework/cluster/zookeeper/ZooKeeperClientConfig.java
@@ -163,7 +163,7 @@ public class ZooKeeperClientConfig {
 
     public static ZooKeeperClientConfig createConfig(final NiFiProperties 
nifiProperties) {
         final String connectString = 
nifiProperties.getProperty(NiFiProperties.ZOOKEEPER_CONNECT_STRING);
-        if (connectString == null || connectString.trim().isEmpty()) {
+        if (connectString == null || connectString.isBlank()) {
             throw new IllegalStateException("The '" + 
NiFiProperties.ZOOKEEPER_CONNECT_STRING + "' property is not set in 
nifi.properties");
         }
         final String cleanedConnectString = cleanConnectString(connectString);
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/heartbeat/ClusterProtocolHeartbeatMonitor.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/heartbeat/ClusterProtocolHeartbeatMonitor.java
index ea40f02d5e..dea54c334b 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/heartbeat/ClusterProtocolHeartbeatMonitor.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/heartbeat/ClusterProtocolHeartbeatMonitor.java
@@ -69,12 +69,12 @@ public class ClusterProtocolHeartbeatMonitor extends 
AbstractHeartbeatMonitor im
         protocolListener.addHandler(this);
 
         String hostname = 
nifiProperties.getProperty(NiFiProperties.CLUSTER_NODE_ADDRESS);
-        if (hostname == null || hostname.trim().isEmpty()) {
+        if (hostname == null || hostname.isBlank()) {
             hostname = "localhost";
         }
 
         final String port = 
nifiProperties.getProperty(NiFiProperties.CLUSTER_NODE_PROTOCOL_PORT);
-        if (port == null || port.trim().isEmpty()) {
+        if (port == null || port.isBlank()) {
             throw new RuntimeException("Unable to determine which port Cluster 
Coordinator Protocol is listening on because the '"
                     + NiFiProperties.CLUSTER_NODE_PROTOCOL_PORT + "' property 
is not set");
         }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/replication/io/ReplicatedResponse.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/replication/io/ReplicatedResponse.java
index 2a07d632ae..3ad303024e 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/replication/io/ReplicatedResponse.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/replication/io/ReplicatedResponse.java
@@ -190,7 +190,7 @@ public class ReplicatedResponse extends Response {
     @Override
     public Set<String> getAllowedMethods() {
         final String allowHeader = getHeaderString("Allow");
-        if (allowHeader == null || allowHeader.trim().isEmpty()) {
+        if (allowHeader == null || allowHeader.isBlank()) {
             return Collections.emptySet();
         }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java
index 90679753da..8d4b820abd 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/firewall/impl/FileBasedClusterNodeFirewall.java
@@ -175,7 +175,7 @@ public class FileBasedClusterNodeFirewall implements 
ClusterNodeFirewall {
                         if (!ipOrHostLine.equals(ipCidr)) {
                             logger.debug("Resolved host '{}' to ip '{}'", 
ipOrHostLine, ipCidr);
                         }
-                        ipCidr += "/32";
+                        ipCidr += "/32"; // NOPMD
                         logger.debug("Adding CIDR to exact IP: '{}'", ipCidr);
                     } catch (final UnknownHostException uhe) {
                         logger.warn("Firewall is skipping unknown host 
address: '{}'", ipOrHostLine);
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/config/StateManagerConfiguration.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/config/StateManagerConfiguration.java
index fd377c9459..130e2c86d7 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/config/StateManagerConfiguration.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/config/StateManagerConfiguration.java
@@ -110,7 +110,7 @@ public class StateManagerConfiguration {
             throw new ConfigParseException("State Management config file " + 
configFile + " is not a valid configuration file, "
                 + "as a " + elementName + " element does not contain an \"id\" 
element");
         }
-        if (id.trim().isEmpty()) {
+        if (id.isBlank()) {
             throw new ConfigParseException("State Management config file " + 
configFile + " is not a valid configuration file, "
                 + "as a " + elementName + "'s \"id\" element is empty");
         }
@@ -120,7 +120,7 @@ public class StateManagerConfiguration {
             throw new ConfigParseException("State Management config file " + 
configFile + " is not a valid configuration file, "
                 + "as a " + elementName + " element does not contain an 
\"class\" element");
         }
-        if (className.trim().isEmpty()) {
+        if (className.isBlank()) {
             throw new ConfigParseException("State Management config file " + 
configFile + " is not a valid configuration file, "
                 + "as a " + elementName + "'s \"class\" element is empty");
         }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/manager/StandardStateManagerProvider.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/manager/StandardStateManagerProvider.java
index 2275c08df1..6ddfd443d3 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/manager/StandardStateManagerProvider.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/state/manager/StandardStateManagerProvider.java
@@ -251,7 +251,7 @@ public class StandardStateManagerProvider implements 
StateManagerProvider {
                     + "' property is missing from the NiFi Properties file");
         }
 
-        if (providerId.trim().isEmpty()) {
+        if (providerId.isBlank()) {
             throw new IllegalStateException("Cannot create " + scope + " 
Provider because the '" + providerIdPropertyName
                     + "' property in the NiFi Properties file has no value 
set. This is a required property and must reference the identifier of one of 
the "
                     + scope + " elements in the State Management Configuration 
File (" + configFile + ")");
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
index e9a0db1e08..8c099b2a43 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/events/BulletinFactory.java
@@ -54,13 +54,14 @@ public final class BulletinFactory {
         if (group == null) {
             return null;
         } else {
-            String path = group.getName();
+            StringBuilder path = new StringBuilder(group.getName());
             ProcessGroup parent = group.getParent();
             while (parent != null) {
-                path = parent.getName() + " / " + path;
+                path.insert(0, " / ");
+                path.insert(0, parent.getName());
                 parent = parent.getParent();
             }
-            return path;
+            return path.toString();
         }
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/FlowEncodingVersion.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/FlowEncodingVersion.java
index 374611202b..3c92c66e7a 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/FlowEncodingVersion.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/FlowEncodingVersion.java
@@ -81,7 +81,7 @@ public class FlowEncodingVersion {
      *             version is not an integer, or if either the major or minor 
version is less than 0.
      */
     public static FlowEncodingVersion parse(final String version) {
-        if (version == null || version.trim().isEmpty()) {
+        if (version == null || version.isBlank()) {
             return null;
         }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/bootstrap/tasks/LongRunningProcessorTask.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/bootstrap/tasks/LongRunningProcessorTask.java
index d90ef45bd1..dd6b0eb570 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/bootstrap/tasks/LongRunningProcessorTask.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/diagnostics/bootstrap/tasks/LongRunningProcessorTask.java
@@ -48,12 +48,13 @@ public class LongRunningProcessorTask implements 
DiagnosticTask {
 
             for (final ActiveThreadInfo activeThread : activeThreads) {
                 if (activeThread.getActiveMillis() > MIN_ACTIVE_MILLIS) {
-                    String threadName = activeThread.getThreadName();
+                    StringBuilder threadName = new 
StringBuilder(activeThread.getThreadName());
                     if (activeThread.isTerminated()) {
-                        threadName = threadName + " (Terminated)";
+                        threadName.append(" (Terminated)");
                     }
 
-                    details.add(processorNode + " - " + threadName + " has 
been active for " + 
FormatUtils.formatMinutesSeconds(activeThread.getActiveMillis(), 
TimeUnit.MILLISECONDS) + " minutes");
+                    details.add("%s - %s has been active for %s 
minutes".formatted(processorNode, threadName,
+                            
FormatUtils.formatMinutesSeconds(activeThread.getActiveMillis(), 
TimeUnit.MILLISECONDS)));
                 }
             }
         }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationArchiveManager.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationArchiveManager.java
index a21bbd703d..737061b237 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationArchiveManager.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/persistence/FlowConfigurationArchiveManager.java
@@ -77,7 +77,7 @@ public class FlowConfigurationArchiveManager {
         // Determine the archive directory
         final String archiveDirVal = 
properties.getFlowConfigurationArchiveDir();
         final Path archiveDirectory;
-        if (archiveDirVal == null || archiveDirVal.trim().isEmpty()) {
+        if (archiveDirVal == null || archiveDirVal.isBlank()) {
             File persistenceFile = properties.getFlowConfigurationFile();
             archiveDirectory = (archiveDirVal == null || 
archiveDirVal.equals(""))
                 ? persistenceFile.toPath().getParent().resolve("archive") : 
new File(archiveDirVal).toPath();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-leader-election-shared/src/main/java/org/apache/nifi/controller/leader/election/TrackedLeaderElectionManager.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-leader-election-shared/src/main/java/org/apache/nifi/controller/leader/election/TrackedLeaderElectionManager.java
index 2f34b5bc2a..64a8881cf0 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-leader-election-shared/src/main/java/org/apache/nifi/controller/leader/election/TrackedLeaderElectionManager.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-leader-election-shared/src/main/java/org/apache/nifi/controller/leader/election/TrackedLeaderElectionManager.java
@@ -142,6 +142,6 @@ public abstract class TrackedLeaderElectionManager 
implements LeaderElectionMana
      * @return Participating status
      */
     protected boolean isParticipating(final String participantId) {
-        return participantId != null && !participantId.trim().isEmpty();
+        return participantId != null && !participantId.isBlank();
     }
 }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/main/java/org/apache/nifi/properties/NiFiPropertiesLoader.java
 
b/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/main/java/org/apache/nifi/properties/NiFiPropertiesLoader.java
index 570bc01b87..22b8060fa0 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/main/java/org/apache/nifi/properties/NiFiPropertiesLoader.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-properties-loader/src/main/java/org/apache/nifi/properties/NiFiPropertiesLoader.java
@@ -116,7 +116,7 @@ public class NiFiPropertiesLoader {
      * @see NiFiPropertiesLoader#load(File)
      */
     public NiFiProperties load(String path) {
-        if (path != null && !path.trim().isEmpty()) {
+        if (path != null && !path.isBlank()) {
             return load(new File(path));
         } else {
             return loadDefault();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index bc21036600..57bd5b9a68 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -4213,7 +4213,7 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
         }
 
         final Map<String, String> userContext;
-        if (user.getClientAddress() != null && 
!user.getClientAddress().trim().isEmpty()) {
+        if (user.getClientAddress() != null && 
!user.getClientAddress().isBlank()) {
             userContext = new HashMap<>();
             userContext.put(UserContextKeys.CLIENT_ADDRESS.name(), 
user.getClientAddress());
         } else {
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/AbstractPortDAO.java
 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/AbstractPortDAO.java
index 969758ad53..277ac362bd 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/AbstractPortDAO.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/AbstractPortDAO.java
@@ -103,7 +103,7 @@ public abstract class AbstractPortDAO extends ComponentDAO 
implements PortDAO {
     private List<String> validateProposedConfiguration(final Port port, final 
PortDTO portDTO) {
         List<String> validationErrors = new ArrayList<>();
 
-        if (isNotNull(portDTO.getName()) && 
portDTO.getName().trim().isEmpty()) {
+        if (isNotNull(portDTO.getName()) && portDTO.getName().isBlank()) {
             validationErrors.add("The name of the port must be specified.");
         }
         if (isNotNull(portDTO.getConcurrentlySchedulableTaskCount()) && 
portDTO.getConcurrentlySchedulableTaskCount() <= 0) {
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
index 67fb65db21..f4ae0ed6b8 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/util/SnippetUtils.java
@@ -439,7 +439,7 @@ public final class SnippetUtils {
             for (final PortDTO portDTO : snippetContents.getInputPorts()) {
                 String portName = portDTO.getName();
                 while (existingPortNames.contains(portName)) {
-                    portName = "Copy of " + portName;
+                    portName = "Copy of " + portName; // NOPMD
                 }
                 portDTO.setName(portName);
                 existingPortNames.add(portDTO.getName());
@@ -449,7 +449,7 @@ public final class SnippetUtils {
             for (final PortDTO portDTO : snippetContents.getOutputPorts()) {
                 String portName = portDTO.getName();
                 while (existingPortNames.contains(portName)) {
-                    portName = "Copy of " + portName;
+                    portName = "Copy of " + portName; // NOPMD
                 }
                 portDTO.setName(portName);
                 existingPortNames.add(portDTO.getName());
@@ -471,7 +471,7 @@ public final class SnippetUtils {
                 if (groupDTO.getVersionControlInformation() == null) {
                     String groupName = groupDTO.getName();
                     while (groupNames.contains(groupName)) {
-                        groupName = "Copy of " + groupName;
+                        groupName = "Copy of " + groupName; // NOPMD
                     }
                     groupDTO.setName(groupName);
                 }
@@ -491,9 +491,9 @@ public final class SnippetUtils {
         if (snippetContents.getProcessGroups() != null) {
             for (final ProcessGroupDTO processGroupDTO : 
snippetContents.getProcessGroups()) {
                 String logFileSuffix = processGroupDTO.getLogFileSuffix();
-                if (logFileSuffix != null && !logFileSuffix.trim().isEmpty()) {
+                if (logFileSuffix != null && !logFileSuffix.isBlank()) {
                     while (existingLogFileSuffixes.contains(logFileSuffix)) {
-                        logFileSuffix = "Copy_of_" + logFileSuffix;
+                        logFileSuffix = "Copy_of_" + logFileSuffix; // NOPMD
                     }
                     processGroupDTO.setLogFileSuffix(logFileSuffix);
                     
existingLogFileSuffixes.add(processGroupDTO.getLogFileSuffix());
diff --git 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
index 3c35a8e3a0..1459d6e18d 100644
--- 
a/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
+++ 
b/nifi-manifest/nifi-runtime-manifest-core/src/main/java/org/apache/nifi/runtime/manifest/impl/StandardRuntimeManifestBuilder.java
@@ -125,13 +125,13 @@ public class StandardRuntimeManifestBuilder implements 
RuntimeManifestBuilder {
         if (extensionManifest == null) {
             throw new IllegalArgumentException("Extension manifest is 
required");
         }
-        if (extensionManifest.getGroupId() == null || 
extensionManifest.getGroupId().trim().isEmpty()) {
+        if (extensionManifest.getGroupId() == null || 
extensionManifest.getGroupId().isBlank()) {
             throw new IllegalArgumentException("Extension manifest groupId is 
required");
         }
-        if (extensionManifest.getArtifactId() == null || 
extensionManifest.getArtifactId().trim().isEmpty()) {
+        if (extensionManifest.getArtifactId() == null || 
extensionManifest.getArtifactId().isBlank()) {
             throw new IllegalArgumentException("Extension manifest artifactId 
is required");
         }
-        if (extensionManifest.getVersion() == null || 
extensionManifest.getVersion().trim().isEmpty()) {
+        if (extensionManifest.getVersion() == null || 
extensionManifest.getVersion().isBlank()) {
             throw new IllegalArgumentException("Extension manifest version is 
required");
         }
 
diff --git 
a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java 
b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
index f73971f4a8..6822ddfad4 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
@@ -1166,7 +1166,7 @@ public class MockProcessSession implements ProcessSession 
{
                 continue; // don't want to capture parent uuid of this. 
Something can't be a child of itself
             }
             final String sourceUuid = 
source.getAttribute(CoreAttributes.UUID.key());
-            if (sourceUuid != null && !sourceUuid.trim().isEmpty()) {
+            if (sourceUuid != null && !sourceUuid.isBlank()) {
                 uuidsCaptured++;
                 if (parentUuidBuilder.length() > 0) {
                     parentUuidBuilder.append(",");
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/extract/nar/NarBundleExtractor.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/extract/nar/NarBundleExtractor.java
index bb53918396..aa287c207e 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/extract/nar/NarBundleExtractor.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/extract/nar/NarBundleExtractor.java
@@ -153,7 +153,7 @@ public class NarBundleExtractor implements BundleExtractor {
     }
 
     public boolean isBlank(String value) {
-        return (value == null || value.trim().isEmpty());
+        return (value == null || value.isBlank());
     }
 
     private void parseExtensionDocs(final JarInputStream jarInputStream, final 
BundleDetails.Builder builder) throws IOException {
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/util/BundleUtils.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/util/BundleUtils.java
index 2640b23ee2..4c684ab958 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/util/BundleUtils.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-bundle-utils/src/main/java/org/apache/nifi/registry/bundle/util/BundleUtils.java
@@ -19,7 +19,7 @@ package org.apache.nifi.registry.bundle.util;
 public class BundleUtils {
 
     public static boolean isBlank(final String value) {
-        return (value == null || value.trim().isEmpty());
+        return (value == null || value.isBlank());
     }
 
     public static void validateNotNull(String fieldName, Object value) {
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/params/SortParameter.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/params/SortParameter.java
index d4a1add59e..5e5c0de193 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/params/SortParameter.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-data-model/src/main/java/org/apache/nifi/registry/params/SortParameter.java
@@ -39,7 +39,7 @@ public class SortParameter {
             throw new IllegalStateException("Field Name cannot be null");
         }
 
-        if (this.fieldName.trim().isEmpty()) {
+        if (this.fieldName.isBlank()) {
             throw new IllegalStateException("Field Name cannot be blank");
         }
 
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/AbstractPolicyBasedAuthorizer.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/AbstractPolicyBasedAuthorizer.java
index 065915adf9..ea1a47e9cc 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/AbstractPolicyBasedAuthorizer.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/AbstractPolicyBasedAuthorizer.java
@@ -359,7 +359,7 @@ public abstract class AbstractPolicyBasedAuthorizer 
implements ManagedAuthorizer
      */
     @Override
     public final void inheritFingerprint(final String fingerprint) throws 
AuthorizationAccessException {
-        if (fingerprint == null || fingerprint.trim().isEmpty()) {
+        if (fingerprint == null || fingerprint.isBlank()) {
             return;
         }
 
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/resource/Authorizable.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/resource/Authorizable.java
index 09b134fe09..2f0ff4ff85 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/resource/Authorizable.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/security/authorization/resource/Authorizable.java
@@ -86,7 +86,7 @@ public interface Authorizable {
         }
 
         final Map<String, String> userContext;
-        if (user.getClientAddress() != null && 
!user.getClientAddress().trim().isEmpty()) {
+        if (user.getClientAddress() != null && 
!user.getClientAddress().isBlank()) {
             userContext = new HashMap<>();
             userContext.put(UserContextKeys.CLIENT_ADDRESS.name(), 
user.getClientAddress());
         } else {
@@ -198,7 +198,7 @@ public interface Authorizable {
         }
 
         final Map<String, String> userContext;
-        if (user.getClientAddress() != null && 
!user.getClientAddress().trim().isEmpty()) {
+        if (user.getClientAddress() != null && 
!user.getClientAddress().isBlank()) {
             userContext = new HashMap<>();
             userContext.put(UserContextKeys.CLIENT_ADDRESS.name(), 
user.getClientAddress());
         } else {
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 520d0a852e..848bc4917a 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
@@ -83,7 +83,7 @@ public class ClassLoaderUtils {
     }
 
     private static boolean isNotBlank(final String value) {
-        return value != null && !value.trim().isEmpty();
+        return value != null && !value.isBlank();
     }
 
     protected static URL[] toURLs(Set<String> modulePaths, FilenameFilter 
filenameFilter, boolean suppressExceptions) throws MalformedURLException {
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/service/extension/docs/HtmlExtensionDocWriter.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/service/extension/docs/HtmlExtensionDocWriter.java
index b00c8fe45f..6e1425d02b 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/service/extension/docs/HtmlExtensionDocWriter.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/service/extension/docs/HtmlExtensionDocWriter.java
@@ -340,7 +340,7 @@ public class HtmlExtensionDocWriter implements 
ExtensionDocWriter {
                 xmlStreamWriter.writeEndElement();
                 xmlStreamWriter.writeStartElement("td");
                 xmlStreamWriter.writeAttribute("id", "description");
-                if (property.getDescription() != null && 
property.getDescription().trim().length() > 0) {
+                if (property.getDescription() != null && 
!property.getDescription().isBlank()) {
                     xmlStreamWriter.writeCharacters(property.getDescription());
                 } else {
                     xmlStreamWriter.writeCharacters("No Description 
Provided.");
@@ -353,7 +353,7 @@ public class HtmlExtensionDocWriter implements 
ExtensionDocWriter {
 
                 if (property.isExpressionLanguageSupported()) {
                     xmlStreamWriter.writeEmptyElement("br");
-                    String text = "Supports Expression Language: true";
+                    StringBuilder text = new StringBuilder("Supports 
Expression Language: true");
                     final String perFF = " (will be evaluated using flow file 
attributes and Environment variables)";
                     final String registry = " (will be evaluated using 
Environment variables only)";
                     final InputRequirement inputRequirement = 
extension.getInputRequirement();
@@ -361,21 +361,21 @@ public class HtmlExtensionDocWriter implements 
ExtensionDocWriter {
                     switch (property.getExpressionLanguageScope()) {
                         case FLOWFILE_ATTRIBUTES:
                             if (inputRequirement != null && 
inputRequirement.equals(InputRequirement.INPUT_FORBIDDEN)) {
-                                text += registry;
+                                text.append(registry);
                             } else {
-                                text += perFF;
+                                text.append(perFF);
                             }
                             break;
                         case ENVIRONMENT:
-                            text += registry;
+                            text.append(registry);
                             break;
                         case NONE:
                             // in case legacy/deprecated method has been used 
to specify EL support
-                            text += " (undefined scope)";
+                            text.append(" (undefined scope)");
                             break;
                     }
 
-                    writeSimpleElement(xmlStreamWriter, "strong", text);
+                    writeSimpleElement(xmlStreamWriter, "strong", 
text.toString());
                 }
                 xmlStreamWriter.writeEndElement();
 
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-properties-loader/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryPropertiesLoader.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-properties-loader/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryPropertiesLoader.java
index e29e79c5c6..7603f8aaaf 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-properties-loader/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryPropertiesLoader.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-properties-loader/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryPropertiesLoader.java
@@ -59,7 +59,7 @@ public class NiFiRegistryPropertiesLoader {
      * @see NiFiRegistryPropertiesLoader#load(File)
      */
     public NiFiRegistryProperties load(String path) {
-        if (path != null && !path.trim().isEmpty()) {
+        if (path != null && !path.isBlank()) {
             return load(new File(path));
         } else {
             logger.error("Cannot read from '{}' -- path is null or empty", 
path);
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-properties/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryProperties.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-properties/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryProperties.java
index 56bdb97f3e..f88bd4a522 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-properties/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryProperties.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-properties/src/main/java/org/apache/nifi/registry/properties/NiFiRegistryProperties.java
@@ -371,7 +371,7 @@ public class NiFiRegistryProperties extends 
ApplicationProperties {
 
     private File getPropertyAsFile(String key) {
         final String filePath = getProperty(key);
-        if (filePath != null && filePath.trim().length() > 0) {
+        if (filePath != null && !filePath.isBlank()) {
             return new File(filePath.trim());
         } else {
             return null;
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-api/src/main/java/org/apache/nifi/registry/revision/api/Revision.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-api/src/main/java/org/apache/nifi/registry/revision/api/Revision.java
index 1404c060bb..e90509d976 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-api/src/main/java/org/apache/nifi/registry/revision/api/Revision.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-api/src/main/java/org/apache/nifi/registry/revision/api/Revision.java
@@ -95,7 +95,7 @@ public class Revision {
         if (this.version != null && this.version.equals(thatRevision.version)) 
{
             return true;
         } else {
-            return clientId != null && !clientId.trim().isEmpty() && 
clientId.equals(thatRevision.getClientId());
+            return clientId != null && !clientId.isBlank() && 
clientId.equals(thatRevision.getClientId());
         }
 
     }
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/standard/StandardUpdateResult.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/standard/StandardUpdateResult.java
index a09ed0a12a..00010e2c35 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/standard/StandardUpdateResult.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/standard/StandardUpdateResult.java
@@ -33,11 +33,11 @@ public class StandardUpdateResult<T> implements 
UpdateResult<T> {
             throw new IllegalArgumentException("Entity is required");
         }
 
-        if (this.entityId == null || this.entityId.trim().isEmpty()) {
+        if (this.entityId == null || this.entityId.isBlank()) {
             throw new IllegalArgumentException("Entity id is required");
         }
 
-        if (this.updaterIdentity == null || 
this.updaterIdentity.trim().isEmpty()) {
+        if (this.updaterIdentity == null || this.updaterIdentity.isBlank()) {
             throw new IllegalArgumentException("Updater identity is required");
         }
     }
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/web/ClientIdParameter.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/web/ClientIdParameter.java
index 1e4d09c3ae..748b3d7145 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/web/ClientIdParameter.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-common/src/main/java/org/apache/nifi/registry/revision/web/ClientIdParameter.java
@@ -26,7 +26,7 @@ public class ClientIdParameter {
     private final String clientId;
 
     public ClientIdParameter(String clientId) {
-        if (clientId == null || clientId.trim().isEmpty()) {
+        if (clientId == null || clientId.isBlank()) {
             this.clientId = UUID.randomUUID().toString();
         } else {
             this.clientId = clientId;
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-entity-service/src/main/java/org/apache/nifi/registry/revision/entity/StandardRevisableEntityService.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-entity-service/src/main/java/org/apache/nifi/registry/revision/entity/StandardRevisableEntityService.java
index 9954430082..247204aee7 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-entity-service/src/main/java/org/apache/nifi/registry/revision/entity/StandardRevisableEntityService.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-revision/nifi-registry-revision-entity-service/src/main/java/org/apache/nifi/registry/revision/entity/StandardRevisableEntityService.java
@@ -87,7 +87,7 @@ public class StandardRevisableEntityService implements 
RevisableEntityService {
             throw new IllegalArgumentException("Revision info is required");
         }
 
-        if (userIdentity == null || userIdentity.trim().isEmpty()) {
+        if (userIdentity == null || userIdentity.isBlank()) {
             throw new IllegalArgumentException("User identity is required");
         }
 
@@ -106,7 +106,7 @@ public class StandardRevisableEntityService implements 
RevisableEntityService {
 
     @Override
     public <T extends RevisableEntity> T delete(final String entityIdentifier, 
final RevisionInfo revisionInfo, final Supplier<T> deleteEntity) {
-        if (entityIdentifier == null || entityIdentifier.trim().isEmpty()) {
+        if (entityIdentifier == null || entityIdentifier.isBlank()) {
             throw new IllegalArgumentException("Entity identifier is 
required");
         }
 
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/AccessPolicy.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/AccessPolicy.java
index aa8260b9c7..3325af3b1d 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/AccessPolicy.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/AccessPolicy.java
@@ -45,7 +45,7 @@ public class AccessPolicy {
         this.users = Collections.unmodifiableSet(new HashSet<>(builder.users));
         this.groups = Collections.unmodifiableSet(new 
HashSet<>(builder.groups));
 
-        if (this.identifier == null || this.identifier.trim().isEmpty()) {
+        if (this.identifier == null || this.identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/Group.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/Group.java
index 29006a7152..e6b7382a09 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/Group.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/Group.java
@@ -39,11 +39,11 @@ public class Group {
         this.name = builder.name;
         this.users = Collections.unmodifiableSet(new HashSet<>(builder.users));
 
-        if (this.identifier == null || this.identifier.trim().isEmpty()) {
+        if (this.identifier == null || this.identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
-        if (this.name == null || this.name.trim().isEmpty()) {
+        if (this.name == null || this.name.isBlank()) {
             throw new IllegalArgumentException("Name can not be null or 
empty");
         }
     }
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/User.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/User.java
index e118c2b62e..b2fe955866 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/User.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-security-api/src/main/java/org/apache/nifi/registry/security/authorization/User.java
@@ -33,11 +33,11 @@ public class User {
         this.identifier = builder.identifier;
         this.identity = builder.identity;
 
-        if (identifier == null || identifier.trim().isEmpty()) {
+        if (identifier == null || identifier.isBlank()) {
             throw new IllegalArgumentException("Identifier can not be null or 
empty");
         }
 
-        if (identity == null || identity.trim().isEmpty()) {
+        if (identity == null || identity.isBlank()) {
             throw new IllegalArgumentException("Identity can not be null or 
empty");
         }
     }
diff --git 
a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/service/StandardServiceFacade.java
 
b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/service/StandardServiceFacade.java
index ddc4cb0902..fc3e5dec8d 100644
--- 
a/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/service/StandardServiceFacade.java
+++ 
b/nifi-registry/nifi-registry-core/nifi-registry-web-api/src/main/java/org/apache/nifi/registry/web/service/StandardServiceFacade.java
@@ -1231,7 +1231,7 @@ public class StandardServiceFacade implements 
ServiceFacade {
     }
 
     private void validateDeleteOfRevisableEntity(final String identifier, 
final RevisionInfo revision, final String entityTypeName) {
-        if (identifier == null || identifier.trim().isEmpty()) {
+        if (identifier == null || identifier.isBlank()) {
             throw new IllegalArgumentException(entityTypeName + " identifier 
is required");
         }
 
diff --git 
a/nifi-stateless/nifi-stateless-api/src/main/java/org/apache/nifi/stateless/config/PropertiesFileEngineConfigurationParser.java
 
b/nifi-stateless/nifi-stateless-api/src/main/java/org/apache/nifi/stateless/config/PropertiesFileEngineConfigurationParser.java
index 65ccd00384..fd06d4e16c 100644
--- 
a/nifi-stateless/nifi-stateless-api/src/main/java/org/apache/nifi/stateless/config/PropertiesFileEngineConfigurationParser.java
+++ 
b/nifi-stateless/nifi-stateless-api/src/main/java/org/apache/nifi/stateless/config/PropertiesFileEngineConfigurationParser.java
@@ -232,7 +232,7 @@ public class PropertiesFileEngineConfigurationParser {
 
     private SslContextDefinition parseSslContextDefinition(final Properties 
properties) {
         final String truststoreFile = properties.getProperty(TRUSTSTORE_FILE);
-        if (truststoreFile == null || truststoreFile.trim().isEmpty()) {
+        if (truststoreFile == null || truststoreFile.isBlank()) {
             return null;
         }
 
@@ -243,7 +243,7 @@ public class PropertiesFileEngineConfigurationParser {
         
sslContextDefinition.setTruststoreType(properties.getProperty(TRUSTSTORE_TYPE));
 
         final String keystoreFile = properties.getProperty(KEYSTORE_FILE);
-        if (keystoreFile != null && !keystoreFile.trim().isEmpty()) {
+        if (keystoreFile != null && !keystoreFile.isBlank()) {
             sslContextDefinition.setKeystoreFile(keystoreFile);
             
sslContextDefinition.setKeystoreType(properties.getProperty(KEYSTORE_TYPE));
 
@@ -251,7 +251,7 @@ public class PropertiesFileEngineConfigurationParser {
             sslContextDefinition.setKeystorePass(keystorePass);
 
             final String explicitKeyPass = 
properties.getProperty(KEY_PASSWORD);
-            final String keyPass = (explicitKeyPass == null || 
explicitKeyPass.trim().isEmpty()) ? keystorePass : explicitKeyPass;
+            final String keyPass = (explicitKeyPass == null || 
explicitKeyPass.isBlank()) ? keystorePass : explicitKeyPass;
             sslContextDefinition.setKeyPass(keyPass);
         }
 
@@ -260,7 +260,7 @@ public class PropertiesFileEngineConfigurationParser {
 
     private String getRequired(final Properties properties, final String key) 
throws StatelessConfigurationException {
         final String propertyValue = properties.getProperty(key);
-        if (propertyValue == null || propertyValue.trim().isEmpty()) {
+        if (propertyValue == null || propertyValue.isBlank()) {
             throw new StatelessConfigurationException("Properties file is 
missing required property " + key);
         }
 
diff --git 
a/nifi-stateless/nifi-stateless-bootstrap/src/main/java/org/apache/nifi/stateless/bootstrap/BootstrapConfiguration.java
 
b/nifi-stateless/nifi-stateless-bootstrap/src/main/java/org/apache/nifi/stateless/bootstrap/BootstrapConfiguration.java
index 7df1b08069..050b4aea50 100644
--- 
a/nifi-stateless/nifi-stateless-bootstrap/src/main/java/org/apache/nifi/stateless/bootstrap/BootstrapConfiguration.java
+++ 
b/nifi-stateless/nifi-stateless-bootstrap/src/main/java/org/apache/nifi/stateless/bootstrap/BootstrapConfiguration.java
@@ -199,7 +199,7 @@ public class BootstrapConfiguration {
         }
 
         final String contextAndParameterName = nameAndValueSplits[0];
-        if (contextAndParameterName.trim().isEmpty()) {
+        if (contextAndParameterName.isBlank()) {
             throw new IllegalArgumentException("Invalid parameter: argument 
has no parameter name: " + argument);
         }
 
diff --git 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/PropertiesFileFlowDefinitionParser.java
 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/PropertiesFileFlowDefinitionParser.java
index 071a6d13aa..85541992c0 100644
--- 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/PropertiesFileFlowDefinitionParser.java
+++ 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/config/PropertiesFileFlowDefinitionParser.java
@@ -351,7 +351,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
 
     private String getTrimmedProperty(final Map<String, String> properties, 
final String propertyName) {
         final String propertyValue = properties.get(propertyName);
-        return (propertyValue == null || propertyValue.trim().isEmpty()) ? 
null : propertyValue.trim();
+        return (propertyValue == null || propertyValue.isBlank()) ? null : 
propertyValue.trim();
     }
 
     private Long getLongProperty(final Map<String, String> properties, final 
String propertyName) {
@@ -404,7 +404,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
                 logger.warn("Found property with name <{}>. This property name 
contains leading or trailing white space, which may not be intended.", key);
             }
 
-            if (!value.trim().equals(value) && !value.trim().isEmpty()) {
+            if (!value.trim().equals(value) && !value.isBlank()) {
                 // If value consists only of white space, don't worry about 
it. But if the value consists of non-white-space characters but has leading or 
trailing white space
                 // it may be cause for concern.
                 logger.warn("Found property with name <{}> and value <{}>. 
This property value contains leading or trailing white space, which may not be 
intended.", key, value);
@@ -485,7 +485,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
         throws IOException, StatelessConfigurationException {
 
         final String flowSnapshotFilename = 
properties.get(FLOW_SNAPSHOT_FILE_KEY);
-        if (flowSnapshotFilename != null && 
!flowSnapshotFilename.trim().isEmpty()) {
+        if (flowSnapshotFilename != null && !flowSnapshotFilename.isBlank()) {
             final File flowSnapshotFile = new 
File(flowSnapshotFilename.trim());
             try {
                 return readVersionedFlowSnapshot(flowSnapshotFile);
@@ -496,7 +496,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
         }
 
         final String flowSnapshotUrl = properties.get(FLOW_SNAPSHOT_URL_KEY);
-        if (flowSnapshotUrl != null && !flowSnapshotUrl.trim().isEmpty()) {
+        if (flowSnapshotUrl != null && !flowSnapshotUrl.isBlank()) {
             final String useSslPropertyValue = 
properties.get(FLOW_SNAPSHOT_URL_USE_SSLCONTEXT_KEY);
             final boolean useSsl = Boolean.parseBoolean(useSslPropertyValue);
 
@@ -508,7 +508,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
         }
 
         final String flowContents = properties.get(FLOW_SNAPSHOT_CONTENTS_KEY);
-        if (flowContents != null && !flowContents.trim().isEmpty()) {
+        if (flowContents != null && !flowContents.isBlank()) {
             final byte[] flowContentsBytes = 
flowContents.getBytes(StandardCharsets.UTF_8);
 
             try (final InputStream in = new 
ByteArrayInputStream(flowContentsBytes)) {
@@ -544,7 +544,7 @@ public class PropertiesFileFlowDefinitionParser implements 
DataflowDefinitionPar
     }
 
     private boolean isEmpty(final String value) {
-        return value == null || value.trim().isEmpty();
+        return value == null || value.isBlank();
     }
 
     private VersionedFlowSnapshot fetchFlowFromUrl(final String url, final 
SslContextDefinition sslContextDefinition) throws IOException {
diff --git 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StandardStatelessEngine.java
 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StandardStatelessEngine.java
index bfbb7e3467..80d45d9ef2 100644
--- 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StandardStatelessEngine.java
+++ 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/engine/StandardStatelessEngine.java
@@ -457,7 +457,7 @@ public class StandardStatelessEngine implements 
StatelessEngine {
 
     private BundleCoordinate determineBundleCoordinate(final 
ConfigurableExtensionDefinition extensionDefinition, final String 
extensionType) {
         final String explicitCoordinates = 
extensionDefinition.getBundleCoordinates();
-        if (explicitCoordinates != null && 
!explicitCoordinates.trim().isEmpty()) {
+        if (explicitCoordinates != null && !explicitCoordinates.isBlank()) {
             final String resolvedClassName = 
resolveExtensionClassName(extensionDefinition, extensionType);
             extensionDefinition.setType(resolvedClassName);
 
@@ -768,7 +768,7 @@ public class StandardStatelessEngine implements 
StatelessEngine {
     }
 
     static Duration parseDuration(final String durationValue) {
-        if (durationValue == null || durationValue.trim().isEmpty()) {
+        if (durationValue == null || durationValue.isBlank()) {
             return null;
         }
 
diff --git 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessFlow.java
 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessFlow.java
index 7af043966a..248683bdad 100644
--- 
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessFlow.java
+++ 
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessFlow.java
@@ -302,7 +302,7 @@ public class StandardStatelessFlow implements 
StatelessDataflow {
 
             // Create executor for dataflow
             final String flowName = dataflowDefinition.getFlowName();
-            final String threadName = (flowName == null || 
flowName.trim().isEmpty()) ? "Run Dataflow" : "Run Dataflow " + flowName;
+            final String threadName = (flowName == null || flowName.isBlank()) 
? "Run Dataflow" : "Run Dataflow " + flowName;
             runDataflowExecutor = Executors.newFixedThreadPool(1, 
createNamedThreadFactory(threadName, false));
 
             // Periodically log component statuses
diff --git a/pmd-ruleset.xml b/pmd-ruleset.xml
index 0c7d9b0d4e..c3f8fcedc9 100644
--- a/pmd-ruleset.xml
+++ b/pmd-ruleset.xml
@@ -81,9 +81,14 @@ under the License.
     <rule ref="category/java/multithreading.xml/UnsynchronizedStaticFormatter" 
/>
 
     <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
+    <rule ref="category/java/performance.xml/InefficientEmptyStringCheck" />
+    <rule ref="category/java/performance.xml/StringInstantiation" />
+    <rule ref="category/java/performance.xml/StringToString" />
     <rule ref="category/java/performance.xml/TooFewBranchesForSwitch">
         <properties>
             <property name="minimumNumberCaseForASwitch" value="2" />
         </properties>
     </rule>
+    <rule ref="category/java/performance.xml/UselessStringValueOf" />
+    <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" 
/>
 </ruleset>


Reply via email to