Raphael Rösch created MNG-6707:
----------------------------------

             Summary: Maven XML parser does not accept '>' in XML processing 
instructions
                 Key: MNG-6707
                 URL: https://issues.apache.org/jira/browse/MNG-6707
             Project: Maven
          Issue Type: Bug
    Affects Versions: 3.6.1
            Reporter: Raphael Rösch


Maven 3.6 does not accept the char '>' in [XML processing instructions 
(PI)|https://www.w3.org/TR/REC-xml/#sec-pi], but '>' is a valid char in PIs. 
Previous versions of Maven (tested with 3.5) are not affected.

Example:
{code:xml}
<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/maven-v4_0_0.xsd";>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.test</groupId>
  <artifactId>xmlbugtest</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <?foo bar > bar ?>
</project>
{code}
Maven 3.6 fails to parse the given POM:
{code:java}
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-parseable POM /home/rroesch/tests/mavenxmlbug/pom.xml: processing 
instruction started on line 7 and column 5 was not closed (position: END_TAG 
seen ...</packaging>\n  <?foo bar >... @7:14)  @ line 7, column 14
 @ 
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were 
encountered while processing the POMs:
[FATAL] Non-parseable POM /home/rroesch/tests/mavenxmlbug/pom.xml: processing 
instruction started on line 7 and column 5 was not closed (position: END_TAG 
seen ...</packaging>\n  <?foo bar >... @7:14)  @ line 7, column 14

    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:395)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects 
(DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor 
(DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build 
(DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:347)
[ERROR]   
[ERROR]   The project  (/home/rroesch/tests/mavenxmlbug/pom.xml) has 1 error
[ERROR]     Non-parseable POM /home/rroesch/tests/mavenxmlbug/pom.xml: 
processing instruction started on line 7 and column 5 was not closed (position: 
END_TAG seen ...</packaging>\n  <?foo bar >... @7:14)  @ line 7, column 14 -> 
[Help 2]
org.apache.maven.model.io.ModelParseException: processing instruction started 
on line 7 and column 5 was not closed (position: END_TAG seen ...</packaging>\n 
 <?foo bar >... @7:14) 
    at org.apache.maven.model.io.DefaultModelReader.read 
(DefaultModelReader.java:114)
    at org.apache.maven.model.io.DefaultModelReader.read 
(DefaultModelReader.java:82)
    at org.apache.maven.model.building.DefaultModelProcessor.read 
(DefaultModelProcessor.java:84)
    at org.apache.maven.model.building.DefaultModelBuilder.readModel 
(DefaultModelBuilder.java:544)
    at org.apache.maven.model.building.DefaultModelBuilder.build 
(DefaultModelBuilder.java:276)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:446)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:412)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:375)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects 
(DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor 
(DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build 
(DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:347)
Caused by: org.codehaus.plexus.util.xml.pull.XmlPullParserException: processing 
instruction started on line 7 and column 5 was not closed (position: END_TAG 
seen ...</packaging>\n  <?foo bar >... @7:14) 
    at org.codehaus.plexus.util.xml.pull.MXParser.parsePI (MXParser.java:3057)
    at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl (MXParser.java:1500)
    at org.codehaus.plexus.util.xml.pull.MXParser.next (MXParser.java:1319)
    at org.codehaus.plexus.util.xml.pull.MXParser.nextTag (MXParser.java:1302)
    at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parseModel 
(MavenXpp3ReaderEx.java:2319)
    at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read 
(MavenXpp3ReaderEx.java:4425)
    at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read 
(MavenXpp3ReaderEx.java:598)
    at org.apache.maven.model.io.DefaultModelReader.read 
(DefaultModelReader.java:105)
    at org.apache.maven.model.io.DefaultModelReader.read 
(DefaultModelReader.java:82)
    at org.apache.maven.model.building.DefaultModelProcessor.read 
(DefaultModelProcessor.java:84)
    at org.apache.maven.model.building.DefaultModelBuilder.readModel 
(DefaultModelBuilder.java:544)
    at org.apache.maven.model.building.DefaultModelBuilder.build 
(DefaultModelBuilder.java:276)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:446)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:412)
    at org.apache.maven.project.DefaultProjectBuilder.build 
(DefaultProjectBuilder.java:375)
    at org.apache.maven.graph.DefaultGraphBuilder.collectProjects 
(DefaultGraphBuilder.java:414)
    at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor 
(DefaultGraphBuilder.java:405)
    at org.apache.maven.graph.DefaultGraphBuilder.build 
(DefaultGraphBuilder.java:82)
    at org.apache.maven.DefaultMaven.buildGraph (DefaultMaven.java:507)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:219)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced 
(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch 
(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode 
(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main 
(Launcher.java:347)
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please 
read the following articles:
[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] 
http://cwiki.apache.org/confluence/display/MAVEN/ModelParseException
{code}
 

Even if PIs are not evaluated by Maven, they can be used as alternative to [XML 
comments|https://www.w3.org/TR/REC-xml/#NT-Comment]. Example: 
[parquet-1.9.0-cdh6.2.0.pom|https://repository.cloudera.com/artifactory/cloudera-repos/org/apache/parquet/parquet/1.9.0-cdh6.2.0/parquet-1.9.0-cdh6.2.0.pom]
 line 286 is not parsable by Maven 3.6.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to