[ 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)