turcsanyip commented on a change in pull request #4540: URL: https://github.com/apache/nifi/pull/4540#discussion_r498244907
########## File path: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/src/main/resources/conf/bootstrap.conf ########## @@ -66,6 +66,15 @@ java.arg.16=-Djavax.security.auth.useSubjectCredsOnly=true # Please see https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_adminserver_config for configuration options. java.arg.17=-Dzookeeper.admin.enableServer=false +# The following options configure a Java Agent to handle native library loading. +# It is needed when a custom jar (eg. JDBC driver) has been configured on a component in the flow and this custom jar depends on a native library +# and tries to load it by its absolute path (java.lang.System.load(String filename) method call). +# Use this Java Agent only if you get "Native Library ... already loaded in another classloader" errors otherwise! +#java.arg.18=-javaagent:./lib/aspectjweaver-${aspectj.version}.jar Review comment: It has been revealed that `aspectjrt` does not needed at runtime, only `aspectjweaver` (which is loaded directly by the agent, not from classpath). So I removed `aspectjrt.ajr` from `lib` and moved `aspectjweaver.jar` to `lib/aspectj` subdirectory. In this way, there are no AspectJ libraries on the system classpath by default (when the agent is turned off). When the agent is turned on, it is being loaded by the system classloader (even if `aspectjweaver.jar` is not on the system classpath). So there might be collision between different versions in this case. I believe it is acceptable because only the "agent turned on" case affected. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
