Matt Burgess created NIFI-6764:
----------------------------------
Summary: Recreate GroovyShell in ExecuteGroovyScript when necessary
Key: NIFI-6764
URL: https://issues.apache.org/jira/browse/NIFI-6764
Project: Apache NiFi
Issue Type: Improvement
Components: Extensions
Reporter: Matt Burgess
Currently, if any property is modified in ExecuteGroovyScript, the shell is
abandoned and a new one will be created. This can cause problems when using a
third-party JAR that loads a native library, as the class that loads the
library will be garbage-collected but will still exist in the JVM's native
library registry. If the processor is stopped and a property modified, the
native library will fail to be reloaded, with the error that it has already
been loaded by another classloader.
The shell need not be abandoned unless something changes in the classpath,
which can happen if the "Additional classpath" property is changed. Otherwise
the shell should remain intact, so it can be reused to evaluate scripts and
thus allow access to the native library. Note that if the "Additional
classpath" property is changed and a native library is to be loaded, the same
error will occur, and NiFi needs to be restarted in this case. This Jira is to
enable the user to change something like the Script Body (which ostensibly
calls something to load the native library) without having to restart NiFi each
time.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)