Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
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.
Attachments
Issue Links
- links to