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)