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 9ec75610fe NIFI-15636 Fixed NPE in StandardFlowComparator when
property descriptors are null in compareProperties (#10927)
9ec75610fe is described below
commit 9ec75610fecb8573108410fedf84d27b7ca029c2
Author: Pierre Villard <[email protected]>
AuthorDate: Tue Feb 24 03:20:40 2026 +0100
NIFI-15636 Fixed NPE in StandardFlowComparator when property descriptors
are null in compareProperties (#10927)
Signed-off-by: David Handermann <[email protected]>
---
.../nifi/registry/flow/diff/StandardFlowComparator.java | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git
a/nifi-registry/nifi-registry-core/nifi-registry-flow-diff/src/main/java/org/apache/nifi/registry/flow/diff/StandardFlowComparator.java
b/nifi-registry/nifi-registry-core/nifi-registry-flow-diff/src/main/java/org/apache/nifi/registry/flow/diff/StandardFlowComparator.java
index 6708700e64..a298e66a14 100644
---
a/nifi-registry/nifi-registry-core/nifi-registry-flow-diff/src/main/java/org/apache/nifi/registry/flow/diff/StandardFlowComparator.java
+++
b/nifi-registry/nifi-registry-core/nifi-registry-flow-diff/src/main/java/org/apache/nifi/registry/flow/diff/StandardFlowComparator.java
@@ -205,7 +205,8 @@ public class StandardFlowComparator implements
FlowComparator {
addIfDifferent(differences,
DifferenceType.RETRIED_RELATIONSHIPS_CHANGED, processorA, processorB,
VersionedProcessor::getRetriedRelationships);
addIfDifferent(differences, DifferenceType.BACKOFF_MECHANISM_CHANGED,
processorA, processorB, VersionedProcessor::getBackoffMechanism);
addIfDifferent(differences, DifferenceType.MAX_BACKOFF_PERIOD_CHANGED,
processorA, processorB, VersionedProcessor::getMaxBackoffPeriod);
- compareProperties(processorA, processorB, processorA.getProperties(),
processorB.getProperties(), processorA.getPropertyDescriptors(),
processorB.getPropertyDescriptors(), differences);
+ compareProperties(processorA, processorB,
nullToEmpty(processorA.getProperties()),
nullToEmpty(processorB.getProperties()),
+ nullToEmpty(processorA.getPropertyDescriptors()),
nullToEmpty(processorB.getPropertyDescriptors()), differences);
}
private void compare(final VersionedReportingTask taskA, final
VersionedReportingTask taskB, final Set<FlowDifference> differences) {
@@ -218,7 +219,8 @@ public class StandardFlowComparator implements
FlowComparator {
addIfDifferent(differences, DifferenceType.RUN_SCHEDULE_CHANGED,
taskA, taskB, VersionedReportingTask::getSchedulingPeriod);
addIfDifferent(differences,
DifferenceType.SCHEDULING_STRATEGY_CHANGED, taskA, taskB,
VersionedReportingTask::getSchedulingStrategy);
addIfDifferent(differences, DifferenceType.SCHEDULED_STATE_CHANGED,
taskA, taskB, VersionedReportingTask::getScheduledState);
- compareProperties(taskA, taskB, taskA.getProperties(),
taskB.getProperties(), taskA.getPropertyDescriptors(),
taskB.getPropertyDescriptors(), differences);
+ compareProperties(taskA, taskB, nullToEmpty(taskA.getProperties()),
nullToEmpty(taskB.getProperties()),
+ nullToEmpty(taskA.getPropertyDescriptors()),
nullToEmpty(taskB.getPropertyDescriptors()), differences);
}
private void compare(final VersionedFlowAnalysisRule ruleA, final
VersionedFlowAnalysisRule ruleB, final Set<FlowDifference> differences) {
@@ -229,7 +231,8 @@ public class StandardFlowComparator implements
FlowComparator {
addIfDifferent(differences, DifferenceType.BUNDLE_CHANGED, ruleA,
ruleB, VersionedFlowAnalysisRule::getBundle);
addIfDifferent(differences, DifferenceType.ENFORCEMENT_POLICY_CHANGED,
ruleA, ruleB, VersionedFlowAnalysisRule::getEnforcementPolicy);
addIfDifferent(differences, DifferenceType.SCHEDULED_STATE_CHANGED,
ruleA, ruleB, VersionedFlowAnalysisRule::getScheduledState);
- compareProperties(ruleA, ruleB, ruleA.getProperties(),
ruleB.getProperties(), ruleA.getPropertyDescriptors(),
ruleB.getPropertyDescriptors(), differences);
+ compareProperties(ruleA, ruleB, nullToEmpty(ruleA.getProperties()),
nullToEmpty(ruleB.getProperties()),
+ nullToEmpty(ruleA.getPropertyDescriptors()),
nullToEmpty(ruleB.getPropertyDescriptors()), differences);
}
private void compare(final VersionedParameterProvider parameterProviderA,
final VersionedParameterProvider parameterProviderB, final Set<FlowDifference>
differences) {
@@ -239,8 +242,8 @@ public class StandardFlowComparator implements
FlowComparator {
addIfDifferent(differences, DifferenceType.ANNOTATION_DATA_CHANGED,
parameterProviderA, parameterProviderB,
VersionedParameterProvider::getAnnotationData);
addIfDifferent(differences, DifferenceType.BUNDLE_CHANGED,
parameterProviderA, parameterProviderB, VersionedParameterProvider::getBundle);
- compareProperties(parameterProviderA, parameterProviderB,
parameterProviderA.getProperties(), parameterProviderB.getProperties(),
- parameterProviderA.getPropertyDescriptors(),
parameterProviderB.getPropertyDescriptors(), differences);
+ compareProperties(parameterProviderA, parameterProviderB,
nullToEmpty(parameterProviderA.getProperties()),
nullToEmpty(parameterProviderB.getProperties()),
+ nullToEmpty(parameterProviderA.getPropertyDescriptors()),
nullToEmpty(parameterProviderB.getPropertyDescriptors()), differences);
}
void compare(final VersionedParameterContext contextA, final
VersionedParameterContext contextB, final Set<FlowDifference> differences) {
@@ -346,7 +349,8 @@ public class StandardFlowComparator implements
FlowComparator {
addIfDifferent(differences, DifferenceType.ANNOTATION_DATA_CHANGED,
serviceA, serviceB, VersionedControllerService::getAnnotationData);
addIfDifferent(differences, DifferenceType.BUNDLE_CHANGED, serviceA,
serviceB, VersionedControllerService::getBundle);
- compareProperties(serviceA, serviceB, serviceA.getProperties(),
serviceB.getProperties(), serviceA.getPropertyDescriptors(),
serviceB.getPropertyDescriptors(), differences);
+ compareProperties(serviceA, serviceB,
nullToEmpty(serviceA.getProperties()), nullToEmpty(serviceB.getProperties()),
+ nullToEmpty(serviceA.getPropertyDescriptors()),
nullToEmpty(serviceB.getPropertyDescriptors()), differences);
addIfDifferent(differences, DifferenceType.SCHEDULED_STATE_CHANGED,
serviceA, serviceB, VersionedControllerService::getScheduledState);
addIfDifferent(differences, DifferenceType.BULLETIN_LEVEL_CHANGED,
serviceA, serviceB, VersionedControllerService::getBulletinLevel, true, "WARN");
}