You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by pv...@apache.org on 2020/05/01 14:47:03 UTC
[nifi] branch master updated: NIFI-7404: Fixed invalid script
processors upon thread termination
This is an automated email from the ASF dual-hosted git repository.
pvillard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/master by this push:
new aa986e0 NIFI-7404: Fixed invalid script processors upon thread termination
aa986e0 is described below
commit aa986e0bfb6b787fd16de82e4708def42ea0f6af
Author: Matthew Burgess <ma...@apache.org>
AuthorDate: Tue Apr 28 09:33:36 2020 -0400
NIFI-7404: Fixed invalid script processors upon thread termination
Signed-off-by: Pierre Villard <pi...@gmail.com>
This closes #4238.
---
.../java/org/apache/nifi/processors/script/ExecuteScript.java | 9 +++++++++
.../apache/nifi/processors/script/InvokeScriptedProcessor.java | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
index e0bfbbc..93935d0 100644
--- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
+++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ExecuteScript.java
@@ -28,6 +28,7 @@ import org.apache.nifi.annotation.behavior.Stateful;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnAdded;
import org.apache.nifi.annotation.lifecycle.OnScheduled;
import org.apache.nifi.annotation.lifecycle.OnStopped;
import org.apache.nifi.components.PropertyDescriptor;
@@ -271,6 +272,14 @@ public class ExecuteScript extends AbstractSessionFactoryProcessor implements Se
scriptingComponentHelper.stop();
}
+ @OnAdded
+ public void added() {
+ // Create the resources whether or not they have been created already, this method is guaranteed to have the instance classloader set
+ // as the thread context class loader. Other methods that call createResources() may be called from other threads with different
+ // classloaders
+ scriptingComponentHelper.createResources();
+ }
+
@Override
public Collection<SearchResult> search(SearchContext context) {
Collection<SearchResult> results = new ArrayList<>();
diff --git a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
index 2790f83..196e78c 100644
--- a/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
+++ b/nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/InvokeScriptedProcessor.java
@@ -41,6 +41,7 @@ import org.apache.nifi.annotation.behavior.Stateful;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnAdded;
import org.apache.nifi.annotation.lifecycle.OnScheduled;
import org.apache.nifi.annotation.lifecycle.OnStopped;
import org.apache.nifi.components.PropertyDescriptor;
@@ -567,6 +568,14 @@ public class InvokeScriptedProcessor extends AbstractSessionFactoryProcessor {
}
}
+ @OnAdded
+ public void added() {
+ // Create the resources whether or not they have been created already, this method is guaranteed to have the instance classloader set
+ // as the thread context class loader. Other methods that call createResources() may be called from other threads with different
+ // classloaders
+ scriptingComponentHelper.createResources();
+ }
+
@OnStopped
public void stop(ProcessContext context) {
invokeScriptedProcessorMethod("onStopped", context);