[
https://issues.apache.org/jira/browse/NIFI-4864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16367620#comment-16367620
]
ASF GitHub Bot commented on NIFI-4864:
--------------------------------------
Github user zenfenan commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2470#discussion_r168821276
--- Diff:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
---
@@ -3447,11 +3448,32 @@ public void startReportingTask(final
ReportingTaskNode reportingTaskNode) {
if (isTerminated()) {
throw new IllegalStateException("Cannot start reporting task "
+ reportingTaskNode.getIdentifier() + " because the controller is terminated");
}
-
+ validateAdditionalResourcesFingerprint(reportingTaskNode);
reportingTaskNode.verifyCanStart();
processScheduler.schedule(reportingTaskNode);
}
+ private void validateAdditionalResourcesFingerprint(ReportingTaskNode
reportingTaskNode){
--- End diff --
Point. Also needed to handle edge case on
ClassLoaderUtils.generateAdditionalUrlsFingerprint(). Added that change as well.
> Additional Resources property pointing at a directory won't find new JARs
> -------------------------------------------------------------------------
>
> Key: NIFI-4864
> URL: https://issues.apache.org/jira/browse/NIFI-4864
> Project: Apache NiFi
> Issue Type: Bug
> Affects Versions: 1.2.0, 1.3.0, 1.4.0, 1.5.0
> Reporter: Bryan Bende
> Assignee: zenfenan
> Priority: Minor
>
> If you have a processor/Controller Service/Reporting Task that has a property
> with dynamicallyModifiesClasspath(true) and you set the value to a directory,
> the resources in that directory will only be calculated when that property
> changes. This means if you added JARs to the directory later, and stopped and
> started your processor, those new JARs still won't be available. You would
> have to change the property to a new directory, or back and forth to some
> other directory, to force a recalculation.
> The setProperties method in AbstractConfiguredComponent is where it looks at
> incoming property changes and determines if any were for classpath related
> properties and then calls reload accordingly.
> We would need to consider the case where setProperties is never even being
> called, someone just stops and starts the processor and would want to pick up
> any new JARs added.
> A possible solution might be to computer some kind of hash/fingerprint of the
> URLs each time reload is called, and then when starting the processor we
> could recompute the fingerprint and compare it to the previous one. If they
> are different then we call reload before starting the component.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)