You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Bryan Bende (Jira)" <ji...@apache.org> on 2022/10/06 16:42:00 UTC
[jira] [Updated] (NIFI-10599) NAR plugin duplicates class loader dependencies during doc generation
[ https://issues.apache.org/jira/browse/NIFI-10599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bryan Bende updated NIFI-10599:
-------------------------------
Description:
When creating the parent class loader hierarchy, the top most NAR ends up being in the chain twice, and one of the times it has a null NarArtifact. This doesn't impact generating the manifest for any of the NARs provided by NiFi because all of them have the Jetty NAR as a parent which doesn't actually provided any extensions, so the Jetty libs are just there twice.
It does however affect a standalone bundle where a controller service API NAR doesn't have a parent NAR. In this case the API interface can be loaded from the class loader which has a null NAR artifact and gets an NPE trying to produce the manifest.
{code:java}
Caused by: java.lang.NullPointerException
at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.processImplementedInterface (ExtensionDefinitionFactory.java:132)
at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.addProvidedServiceAPIs (ExtensionDefinitionFactory.java:102)
at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.getProvidedServiceAPIs (ExtensionDefinitionFactory.java:86)
at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.createExtensionDefinition (ExtensionDefinitionFactory.java:75)
at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.discoverExtensions (ExtensionDefinitionFactory.java:64)
at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:621)
at org.apache.nifi.NarMojo.execute (NarMojo.java:511) {code}
An example to reproduce the issue is here:
[https://github.com/bbende/nifi-dependency-example]
> NAR plugin duplicates class loader dependencies during doc generation
> ---------------------------------------------------------------------
>
> Key: NIFI-10599
> URL: https://issues.apache.org/jira/browse/NIFI-10599
> Project: Apache NiFi
> Issue Type: Bug
> Affects Versions: nifi-nar-maven-plugin-1.3.4
> Reporter: Bryan Bende
> Assignee: Bryan Bende
> Priority: Major
> Fix For: nifi-nar-maven-plugin-1.3.6
>
>
> When creating the parent class loader hierarchy, the top most NAR ends up being in the chain twice, and one of the times it has a null NarArtifact. This doesn't impact generating the manifest for any of the NARs provided by NiFi because all of them have the Jetty NAR as a parent which doesn't actually provided any extensions, so the Jetty libs are just there twice.
> It does however affect a standalone bundle where a controller service API NAR doesn't have a parent NAR. In this case the API interface can be loaded from the class loader which has a null NAR artifact and gets an NPE trying to produce the manifest.
> {code:java}
> Caused by: java.lang.NullPointerException
> at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.processImplementedInterface (ExtensionDefinitionFactory.java:132)
> at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.addProvidedServiceAPIs (ExtensionDefinitionFactory.java:102)
> at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.getProvidedServiceAPIs (ExtensionDefinitionFactory.java:86)
> at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.createExtensionDefinition (ExtensionDefinitionFactory.java:75)
> at org.apache.nifi.extension.definition.extraction.ExtensionDefinitionFactory.discoverExtensions (ExtensionDefinitionFactory.java:64)
> at org.apache.nifi.NarMojo.generateDocumentation (NarMojo.java:621)
> at org.apache.nifi.NarMojo.execute (NarMojo.java:511) {code}
> An example to reproduce the issue is here:
> [https://github.com/bbende/nifi-dependency-example]
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)