tags:

views:

22

answers:

1

Hi,

When I run mvn site I get the error:

java.lang.NullPointerException
        at org.codehaus.mojo.versions.ordering.MavenVersionComparator.innerGetSegmentCount(MavenVersionComparator.java:5
1)
        at org.codehaus.mojo.versions.ordering.AbstractVersionComparator.getSegmentCount(AbstractVersionComparator.java:
27)

This appears to be a Maven bug, which according to the JIRA ticket has been resolved in version 1.2. I'm assuming this means version 1.2 of a particular plugin (probably the site plugin).

Does anyone know whether this fix has been released, and if so, how can I force Maven to use the version of the plugin that includes this fix?

Update

As suggested below, I added

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>versions-maven-plugin</artifactId>
  <version>1.2</version>                
</plugin>

to my pom.xml. But I now get the following error instead:

java.lang.NullPointerException
        at org.codehaus.mojo.versions.PluginUpdatesDetails.isDependencyUpdateAvailable(PluginUpdatesDetails.java:68)
        at org.codehaus.mojo.versions.PluginUpdatesRenderer.renderSummaryTotalsTable(PluginUpdatesRenderer.java:132)
        at org.codehaus.mojo.versions.PluginUpdatesRenderer.renderBody(PluginUpdatesRenderer.java:71)

Thanks, Don

+1  A: 

It's the Codehaus Versions Maven Plugin.

Here's the config with the version you need:

<reporting>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>versions-maven-plugin</artifactId>
      <version>1.2</version>
      <reportSets>
      ...
      </reportSets>
    </plugin>
  </plugins>
</reporting>

Edit:

For the new error, this source code line (68) suggests that a dependency is referenced without a version. Try looking for a plugin without a <version>.

63      public boolean isDependencyUpdateAvailable()
64      {
65          for ( Iterator i = dependencyVersions.values().iterator(); i.hasNext(); )
66          {
67              ArtifactVersions versions = (ArtifactVersions) i.next();
68              if ( versions.getAllUpdates( UpdateScope.ANY, includeSnapshots ).length > 0 )
69              {
70                  return true;
71              }
72          }
73          return false;
74      }
seanizer