maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Evgeniy Latukhin (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (MPH-135) 3.0 effective-pom will crash builds
Date Sat, 17 Mar 2018 12:30:00 GMT

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

Evgeniy Latukhin edited comment on MPH-135 at 3/17/18 12:29 PM:
----------------------------------------------------------------

I am too impacted by this issue. As far as i can debug this one is related to the "null" encoding
formed in effective pom output.

As a result effective pom looks 'fine' when outputed to console but breaks on 
 org.codehaus.plexus.util.xml.XmlStreamWriter#detectEncoding due to encoding being null.

this is header for effective pom while being written to the xml:
{noformat}
<?xml version="1.0" encoding="null"?>
<!-- ====================================================================== -->
<!--                                                                       
-->
<!-- Generated by Maven Help Plugin on 2018-03-17T15:04:57                 
-->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/               
-->
<!--                                                                       
-->
<!-- ====================================================================== -->
<projects>
  <!-- ====================================================================== -->
  <!--                                                                       
-->
  <!-- Effective POM for project                                             
-->
  <!-- 'org.example:example-parent:pom:1.0-SNAPSHOT'                         
-->
  <!--                                                                       
-->
  <!-- ====================================================================== -->
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">{noformat}
Encoding null then percolates and result in npe, whose stacktrace is thrown out.

Pom example:
{noformat}
<project xmlns="http://maven.apache.org/POM/4.0.0">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>modules/moduleA</module>
    <module>modules/moduleB</module>
  </modules>
</project>{noformat}
 As far as i can understand main problem is in:

org.apache.maven.plugins.help.EffectivePomMojo#execute
{noformat}
String encoding = output != null ? project.getModel().getModelEncoding()
                        : System.getProperty( "file.encoding" );{noformat}
 If project.getModel().getEncoding() is 'null' (this is true in my case) we will get null
encoding and writing to the file will result in NPE being thrown.

I think we should default to system property value if model encoding is null.

I've attached simple path that fixes this issue.

 

 

 


was (Author: muhanga):
I am too impacted by this issue. As far as i can debug this one is related to the "null" encoding
formed in effective pom output.

As a result effective pom looks 'fine' when outputed to console but breaks on 
 org.codehaus.plexus.util.xml.XmlStreamWriter#detectEncoding due to encoding being null.

this is header for effective pom while being written to the xml:
{noformat}
<?xml version="1.0" encoding="null"?>
<!-- ====================================================================== -->
<!--                                                                       
-->
<!-- Generated by Maven Help Plugin on 2018-03-17T15:04:57                 
-->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/               
-->
<!--                                                                       
-->
<!-- ====================================================================== -->
<projects>
  <!-- ====================================================================== -->
  <!--                                                                       
-->
  <!-- Effective POM for project                                             
-->
  <!-- 'org.example:example-parent:pom:1.0-SNAPSHOT'                         
-->
  <!--                                                                       
-->
  <!-- ====================================================================== -->
  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">{noformat}
Encoding null then percolates and result in npe, whose stacktrace is thrown out.

Pom example:
{noformat}
<project xmlns="http://maven.apache.org/POM/4.0.0">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>modules/moduleA</module>
    <module>modules/moduleB</module>
  </modules>
</project>{noformat}
 As far as i can understand main problem is in:

org.apache.maven.plugins.help.EffectivePomMojo#execute
{noformat}
String encoding = output != null ? project.getModel().getModelEncoding()
                        : System.getProperty( "file.encoding" );{noformat}
 If project.getModel().getEncoding() is 'null' (this is true in my case) we will get null
encoding and writing to the file will result in NPE being thrown. 

I think we should default to system property value if model encoding is null.

 

 

 

> 3.0 effective-pom will crash builds
> -----------------------------------
>
>                 Key: MPH-135
>                 URL: https://issues.apache.org/jira/browse/MPH-135
>             Project: Maven Help Plugin
>          Issue Type: Bug
>            Reporter: Hans-Joachim Kliemeck
>            Priority: Blocker
>         Attachments: MPH-135_deliberate_to_system_encoding_if_model_is_null.patch
>
>
> Hi,
> we see build failures on all our pipelines with the new version 3.0.0. Is this an official
version or was this version recalled? Is there a breaking change related to xml parsing /
encoding?
> [https://github.com/apache/maven-help-plugin/releases/tag/maven-help-plugin-3.0.0]
> {code:java}
> 13:45:17 INFO - ------------------------------------------------------------------------
> 13:45:17 ERROR - Failed to execute goal org.apache.maven.plugins:maven-help-plugin:3.0.0:effective-pom
(default-cli) on project composites: Execution default-cli of goal org.apache.maven.plugins:maven-help-plugin:3.0.0:effective-pom
failed. NullPointerException -> [Help 1]
> 13:45:17 INFO - org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
goal org.apache.maven.plugins:maven-help-plugin:3.0.0:effective-pom (default-cli) on project
composites: Execution default-cli of goal org.apache.maven.plugins:maven-help-plugin:3.0.0:effective-pom
failed.
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
> 13:45:17 INFO - 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
> 13:45:17 INFO - 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
> 13:45:17 INFO - 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
> 13:45:17 INFO - 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
> 13:45:17 INFO - 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
> 13:45:17 INFO - 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
> 13:45:17 INFO - 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 13:45:17 INFO - 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 13:45:17 INFO - 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 13:45:17 INFO - 	at java.lang.reflect.Method.invoke(Method.java:483)
> 13:45:17 INFO - 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
> 13:45:17 INFO - 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
> 13:45:17 INFO - 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
> 13:45:17 INFO - 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> 13:45:17 INFO - Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
default-cli of goal org.apache.maven.plugins:maven-help-plugin:3.0.0:effective-pom failed.
> 13:45:17 INFO - 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
> 13:45:17 INFO - 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
> 13:45:17 INFO - 	... 20 more
> 13:45:17 INFO - Caused by: java.lang.NullPointerException
> 13:45:17 INFO - 	at org.codehaus.plexus.util.xml.XmlStreamWriter.close(XmlStreamWriter.java:75)
> 13:45:17 INFO - 	at org.codehaus.plexus.util.IOUtil.close(IOUtil.java:796)
> 13:45:17 INFO - 	at org.apache.maven.plugins.help.AbstractEffectiveMojo.writeXmlFile(AbstractEffectiveMojo.java:96)
> 13:45:17 INFO - 	at org.apache.maven.plugins.help.EffectivePomMojo.execute(EffectivePomMojo.java:139)
> 13:45:17 INFO - 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
> 13:45:17 INFO - 	... 21 more
> 13:45:17 ERROR - 
> 13:45:17 ERROR - Re-run Maven using the -X switch to enable full debug logging.
> {code}
> Best Regards
> Hajo



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message