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 d11b11931d NIFI-14194 Added and Applied PMD Rule ForLoopCanBeForeach
(#10072)
d11b11931d is described below
commit d11b11931db8c57fd06d95e0336bf0b76632cb11
Author: dan-s1 <[email protected]>
AuthorDate: Mon Jul 7 16:00:35 2025 -0400
NIFI-14194 Added and Applied PMD Rule ForLoopCanBeForeach (#10072)
Signed-off-by: David Handermann <[email protected]>
---
.../apache/nifi/web/HttpServletContentRequestContext.java | 6 ++----
.../nifi/serialization/record/ResultSetRecordSet.java | 4 ++--
.../java/org/apache/nifi/processors/mongodb/PutMongoIT.java | 13 ++++++-------
.../processors/standard/db/impl/MySQLDatabaseAdapter.java | 4 ++--
.../test/java/org/apache/nifi/avro/TestWriteAvroResult.java | 4 ++--
.../nifi/provenance/index/lucene/IndexDirectoryManager.java | 4 +---
.../nifi/controller/status/history/MetricRollingBuffer.java | 2 ++
.../status/history/VolatileComponentStatusRepository.java | 4 ++--
.../org/apache/nifi/remote/TestStandardRemoteGroupPort.java | 6 ++----
.../protocol/socket/TestSocketFlowFileServerProtocol.java | 3 +--
.../cli/impl/result/registry/ExtensionMetadataResult.java | 3 +--
.../toolkit/cli/impl/result/registry/TagCountResult.java | 3 +--
pmd-ruleset.xml | 2 +-
13 files changed, 25 insertions(+), 33 deletions(-)
diff --git
a/nifi-commons/nifi-content-viewer-utils/src/main/java/org/apache/nifi/web/HttpServletContentRequestContext.java
b/nifi-commons/nifi-content-viewer-utils/src/main/java/org/apache/nifi/web/HttpServletContentRequestContext.java
index ff5df2d032..0902e94794 100644
---
a/nifi-commons/nifi-content-viewer-utils/src/main/java/org/apache/nifi/web/HttpServletContentRequestContext.java
+++
b/nifi-commons/nifi-content-viewer-utils/src/main/java/org/apache/nifi/web/HttpServletContentRequestContext.java
@@ -58,10 +58,8 @@ public class HttpServletContentRequestContext implements
ContentRequestContext {
if (query != null) {
final String[] queryParameters = query.split("&");
- for (int i = 0; i < queryParameters.length; i++) {
- if (queryParameters[0].startsWith("clusterNodeId=")) {
- rawClusterNodeId =
StringUtils.substringAfterLast(queryParameters[0], "clusterNodeId=");
- }
+ if (queryParameters[0].startsWith("clusterNodeId=")) {
+ rawClusterNodeId =
StringUtils.substringAfterLast(queryParameters[0], "clusterNodeId=");
}
}
final String clusterNodeId = rawClusterNodeId;
diff --git
a/nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/ResultSetRecordSet.java
b/nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/ResultSetRecordSet.java
index 3357b06a7f..79dfe63d88 100644
---
a/nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/ResultSetRecordSet.java
+++
b/nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/ResultSetRecordSet.java
@@ -380,8 +380,8 @@ public class ResultSetRecordSet implements RecordSet,
Closeable {
}
Object valueToLookAt = null;
- for (int i = 0; i < values.length; i++) {
- valueToLookAt = values[i];
+ for (Object value : values) {
+ valueToLookAt = value;
if (valueToLookAt != null) {
break;
}
diff --git
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoIT.java
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoIT.java
index e1e6eeeb1f..4521ca11e9 100644
---
a/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoIT.java
+++
b/nifi-extension-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoIT.java
@@ -600,19 +600,18 @@ public class PutMongoIT extends MongoWriteTestBase {
upsertOutput.assertAttributeEquals(PutMongo.ATTRIBUTE_UPSERT_ID,
"Test");
// test next flow files for update attributes
- for (int i = 0; i < flowFilesForRelationship.size(); i++) {
-
flowFilesForRelationship.get(i).assertAttributeNotExists(PutMongo.ATTRIBUTE_UPSERT_ID);
-
flowFilesForRelationship.get(i).assertAttributeEquals(PutMongo.ATTRIBUTE_UPDATE_MATCH_COUNT,
String.valueOf(1));
-
flowFilesForRelationship.get(i).assertAttributeEquals(PutMongo.ATTRIBUTE_UPDATE_MODIFY_COUNT,
String.valueOf(1));
+ for (MockFlowFile flowFile : flowFilesForRelationship) {
+ flowFile.assertAttributeNotExists(PutMongo.ATTRIBUTE_UPSERT_ID);
+
flowFile.assertAttributeEquals(PutMongo.ATTRIBUTE_UPDATE_MATCH_COUNT,
String.valueOf(1));
+
flowFile.assertAttributeEquals(PutMongo.ATTRIBUTE_UPDATE_MODIFY_COUNT,
String.valueOf(1));
}
Document query = new Document("_id", "Test");
Document result = collection.find(query).first();
- List array = (List) result.get("testArr");
+ List<Document> array = (List<Document>) result.get("testArr");
assertNotNull(array, "Array was empty");
assertEquals(3, array.size(), "Wrong size");
- for (int index = 0; index < array.size(); index++) {
- Document doc = (Document) array.get(index);
+ for (Document doc : array) {
String msg = doc.getString("msg");
assertNotNull(msg, "Msg was null");
assertEquals(msg, "Hi", "Msg had wrong value");
diff --git
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/MySQLDatabaseAdapter.java
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/MySQLDatabaseAdapter.java
index 0d11f27cd0..18ca534c8a 100644
---
a/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/MySQLDatabaseAdapter.java
+++
b/nifi-extension-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/MySQLDatabaseAdapter.java
@@ -80,8 +80,8 @@ public class MySQLDatabaseAdapter extends
GenericDatabaseAdapter {
.collect(Collectors.joining(", "));
List<String> updateValues = new ArrayList<>();
- for (int i = 0; i < columnNames.size(); i++) {
- updateValues.add(columnNames.get(i) + " = ?");
+ for (String columnName : columnNames) {
+ updateValues.add(columnName + " = ?");
}
String parameterizedUpdateValues = String.join(", ", updateValues);
diff --git
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
index 3844774704..9e455ca8ac 100644
---
a/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
+++
b/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java
@@ -338,8 +338,8 @@ public abstract class TestWriteAvroResult {
assertEquals(objectArray.length, bb.remaining(),
"For field " + fieldName + ", byte buffer remaining
should have been " + objectArray.length + " but was " + bb.remaining());
- for (int i = 0; i < objectArray.length; i++) {
- assertEquals(objectArray[i], bb.get());
+ for (Object o : objectArray) {
+ assertEquals(o, bb.get());
}
} else if (recordValue instanceof Object[]) {
assertInstanceOf(Array.class, avroValue, fieldName + " should
have been instanceof Array");
diff --git
a/nifi-framework-bundle/nifi-framework-extensions/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/IndexDirectoryManager.java
b/nifi-framework-bundle/nifi-framework-extensions/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/IndexDirectoryManager.java
index 74bb5e1710..18a32dce4e 100644
---
a/nifi-framework-bundle/nifi-framework-extensions/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/IndexDirectoryManager.java
+++
b/nifi-framework-bundle/nifi-framework-extensions/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/index/lucene/IndexDirectoryManager.java
@@ -161,9 +161,7 @@ public class IndexDirectoryManager {
// start time of index N+1. So we determine the time range of each
index and select an index only if
// its start time is before the given timestamp and its end time is <=
the given timestamp.
for (final List<IndexLocation> locationList :
startTimeWithFileByStorageDirectory.values()) {
- for (int i = 0; i < locationList.size(); i++) {
- final IndexLocation indexLoc = locationList.get(i);
-
+ for (IndexLocation indexLoc : locationList) {
final String partition = indexLoc.getPartitionName();
final IndexLocation activeLocation =
activeIndices.get(partition);
if (indexLoc.equals(activeLocation)) {
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/MetricRollingBuffer.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/MetricRollingBuffer.java
index f6586f3b82..0a31797ec6 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/MetricRollingBuffer.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/MetricRollingBuffer.java
@@ -63,6 +63,7 @@ public class MetricRollingBuffer {
return count;
}
+ @SuppressWarnings("PMD.ForLoopCanBeForeach")
public void expireBefore(final Date date) {
if (snapshots == null) {
return;
@@ -109,6 +110,7 @@ public class MetricRollingBuffer {
writeIndex = initialSize;
}
+ @SuppressWarnings("PMD.ForLoopCanBeForeach")
private void compact() {
final StatusSnapshot[] newArray = new StatusSnapshot[count + 1];
int insertionIndex = 0;
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java
index a5f67fc252..0238fd389d 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/status/history/VolatileComponentStatusRepository.java
@@ -237,8 +237,8 @@ public class VolatileComponentStatusRepository implements
StatusHistoryRepositor
snapshot.addStatusMetric(gcMetricDescriptorsDifferential.get(j), currentValue -
previousValue);
}
} else {
- for (int j = 0; j < gcMetricDescriptorsDifferential.size();
j++) {
-
snapshot.addStatusMetric(gcMetricDescriptorsDifferential.get(j), 0L);
+ for (MetricDescriptor<List<GarbageCollectionStatus>>
listMetricDescriptor : gcMetricDescriptorsDifferential) {
+ snapshot.addStatusMetric(listMetricDescriptor, 0L);
}
}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
b/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
index b608410075..fcaa9cab7b 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/TestStandardRemoteGroupPort.java
@@ -340,8 +340,7 @@ public class TestStandardRemoteGroupPort {
// Execute onTrigger while offering new flow files.
final List<MockFlowFile> flowFiles = new ArrayList<>();
- for (int i = 0; i < expectedNumberOfPackets.length; i++) {
- int numOfPackets = expectedNumberOfPackets[i];
+ for (int numOfPackets : expectedNumberOfPackets) {
int startF = flowFiles.size();
int endF = startF + numOfPackets;
IntStream.range(startF, endF).forEach(f -> {
@@ -374,11 +373,10 @@ public class TestStandardRemoteGroupPort {
final List<DataPacket> dataPackets = sentPackets.get(i);
assertEquals(expectedNumberOfPackets[i], dataPackets.size());
- for (int p = 0; p < dataPackets.size(); p++) {
+ for (DataPacket dataPacket : dataPackets) {
final FlowFile flowFile = flowFiles.get(f);
// Assert sent packet
- final DataPacket dataPacket = dataPackets.get(p);
assertEquals(flowFile.getSize(), dataPacket.getSize());
// Assert provenance events (SEND and DROP)
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
b/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
index f6957aa8af..9fdd712647 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-site-to-site/src/test/java/org/apache/nifi/remote/protocol/socket/TestSocketFlowFileServerProtocol.java
@@ -169,8 +169,7 @@ public class TestSocketFlowFileServerProtocol {
final int numPeers = dis.readInt();
assertEquals(nodeInfoList.size(), numPeers);
- for (int i = 0; i < nodeInfoList.size(); i++) {
- final NodeInformation node = nodeInfoList.get(i);
+ for (final NodeInformation node : nodeInfoList) {
assertEquals(node.getSiteToSiteHostname(), dis.readUTF());
assertEquals(node.getSiteToSitePort().intValue(),
dis.readInt());
assertEquals(node.isSiteToSiteSecure(), dis.readBoolean());
diff --git
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/ExtensionMetadataResult.java
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/ExtensionMetadataResult.java
index c0ec9044ef..caa1fc6b7c 100644
---
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/ExtensionMetadataResult.java
+++
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/ExtensionMetadataResult.java
@@ -51,8 +51,7 @@ public class ExtensionMetadataResult extends
AbstractWritableResult<List<Extensi
.column("Version", 8, 40, false)
.build();
- for (int i = 0; i < extensionMetadata.size(); ++i) {
- final ExtensionMetadata metadata = extensionMetadata.get(i);
+ for (final ExtensionMetadata metadata : extensionMetadata) {
table.addRow(
metadata.getDisplayName(),
metadata.getBundleInfo().getBucketName(),
diff --git
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/TagCountResult.java
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/TagCountResult.java
index f3fcd050bd..61d4c54487 100644
---
a/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/TagCountResult.java
+++
b/nifi-toolkit/nifi-toolkit-cli/src/main/java/org/apache/nifi/toolkit/cli/impl/result/registry/TagCountResult.java
@@ -48,8 +48,7 @@ public class TagCountResult extends
AbstractWritableResult<List<TagCount>> {
.column("Count", 5, 20, false)
.build();
- for (int i = 0; i < tagCounts.size(); ++i) {
- final TagCount tagCount = tagCounts.get(i);
+ for (final TagCount tagCount : tagCounts) {
table.addRow(tagCount.getTag(),
String.valueOf(tagCount.getCount()));
}
diff --git a/pmd-ruleset.xml b/pmd-ruleset.xml
index eb377bfa09..156d2e7ade 100644
--- a/pmd-ruleset.xml
+++ b/pmd-ruleset.xml
@@ -34,7 +34,7 @@ under the License.
<rule ref="category/java/bestpractices.xml/AvoidMessageDigestField" />
<rule ref="category/java/bestpractices.xml/AvoidReassigningCatchVariables"
/>
-
+ <rule ref="category/java/bestpractices.xml/ForLoopCanBeForeach" />
<rule ref="category/java/bestpractices.xml/PrimitiveWrapperInstantiation"
/>
<rule ref="category/java/bestpractices.xml/SimplifiableTestAssertion" />
<rule ref="category/java/bestpractices.xml/UnusedPrivateField" />