You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Herve Boutemy (Jira)" <ji...@apache.org> on 2020/07/12 09:17:00 UTC

[jira] [Commented] (MNG-6932) NullPointerException if no Package is defined for the current class

    [ https://issues.apache.org/jira/browse/MNG-6932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17156245#comment-17156245 ] 

Herve Boutemy commented on MNG-6932:
------------------------------------

bq. Do you see any benefit in having the Maven version in the identifier?
yes, there is a benefit: given version of the plugin depends on Maven core version (in the future, even more than in the past), yes, showing which version of Maven core injected the plugin version is useful

> NullPointerException if no Package is defined for the current class
> -------------------------------------------------------------------
>
>                 Key: MNG-6932
>                 URL: https://issues.apache.org/jira/browse/MNG-6932
>             Project: Maven
>          Issue Type: Bug
>          Components: POM
>    Affects Versions: 3.6.3
>         Environment: Windows 10, Java 8, custom classloading
>            Reporter: Bence Sipka
>            Assignee: Michael Osipov
>            Priority: Minor
>             Fix For: 3.7.x-candidate
>
>
> When the maven-resolver and related classes are used with a {{ClassLoader}} that doesn't define a java.lang.Package object for the loaded classes, the library throws a {{NullPointerException}}.
> Scenario: I'm using the maven-resolver classes to resolver artifacts from various repositories. I package the app, and deploy it to a custom environment where the {{ClassLoader}} for the app doesn't define a {{Package}} for the loaded classes. In these cases, when the maven-resolver library calls {{this.getClass().getPackage().getImplementationVersion()}} then a {{NullPointerException}} will occurr.
>  The following classes are affected:
>  {{DefaultSuperPomProvider.getSuperModel():81}}
>  {{DefaultReportingConverter.<init>:56}}
> Code around the locations:
> {code:java}
> String modelId = "org.apache.maven:maven-model-builder:"
>     + this.getClass().getPackage().getImplementationVersion() + ":super-pom";
> InputSource inputSource = new InputSource();
> inputSource.setModelId( modelId );
> {code}
> This exception makes the library unportable to different environments.
> Workaround:
> Implement a custom variant of the above classes that circumvent these parts of the code.
> Possible solution:
> Null checks, and hard coding the version number.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)