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 <[email protected]>
AuthorDate: Tue Apr 28 09:33:36 2020 -0400

    NIFI-7404: Fixed invalid script processors upon thread termination
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    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);

Reply via email to