From 8455af95d5584103ba5c38c4cf2eba5b71796303 Mon Sep 17 00:00:00 2001 From: Eugene Platonov Date: Mon, 6 Nov 2023 22:13:29 -0500 Subject: [PATCH] Fix NPE by using `scalac-scoverage-reporter` plugin as a fallback --- .../plugin/SCoveragePreCompileMojo.java | 35 +++++++------------ 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/scoverage/plugin/SCoveragePreCompileMojo.java b/src/main/java/org/scoverage/plugin/SCoveragePreCompileMojo.java index ca621eab..2ce01113 100644 --- a/src/main/java/org/scoverage/plugin/SCoveragePreCompileMojo.java +++ b/src/main/java/org/scoverage/plugin/SCoveragePreCompileMojo.java @@ -426,22 +426,27 @@ private void setProperty( Properties projectProperties, String propertyName, Str } } - private List getScalaScoveragePluginArtifacts(String resolvedScalaVersion, String scalaMainVersion ) - throws ArtifactNotFoundException, ArtifactResolutionException - { - String resolvedScalacPluginVersion = scalacPluginVersion; - if ( resolvedScalacPluginVersion == null || "".equals( resolvedScalacPluginVersion ) ) + // if scalacPluginVersion is not set explicitly or previously resolved, try to resolve it using pluginArtifacts + private String getScalacPluginVersion() { + if( scalacPluginVersion == null || scalacPluginVersion.isEmpty()) { for ( Artifact artifact : pluginArtifacts ) { if ( "org.scoverage".equals( artifact.getGroupId() ) - && artifact.getArtifactId().startsWith( "scalac-scoverage-plugin_" ) ) + && artifact.getArtifactId().matches("^scalac-scoverage-(plugin|reporter)_.*" ) ) { - resolvedScalacPluginVersion = artifact.getVersion(); + scalacPluginVersion = artifact.getVersion(); break; } } } + return scalacPluginVersion; + } + + private List getScalaScoveragePluginArtifacts(String resolvedScalaVersion, String scalaMainVersion ) + throws ArtifactNotFoundException, ArtifactResolutionException + { + String resolvedScalacPluginVersion = getScalacPluginVersion(); // There are 3 cases depending on the version of scalac-scoverage-plugin // * Version 2.0.0 onwards - 3 artifacts, plugin using resolvedScalaVersion @@ -482,23 +487,9 @@ private List getScalaScoveragePluginArtifacts(String resolvedScalaVers private Artifact getScalaScoverageRuntimeArtifact( String scalaMainVersion ) throws ArtifactNotFoundException, ArtifactResolutionException { - String resolvedScalacRuntimeVersion = scalacPluginVersion; - if ( resolvedScalacRuntimeVersion == null || "".equals( resolvedScalacRuntimeVersion ) ) - { - for ( Artifact artifact : pluginArtifacts ) - { - if ( "org.scoverage".equals( artifact.getGroupId() ) - && artifact.getArtifactId().startsWith( "scalac-scoverage-plugin_" ) ) - { - resolvedScalacRuntimeVersion = artifact.getVersion(); - break; - } - } - } - return getResolvedArtifact( "org.scoverage", "scalac-scoverage-runtime_" + scalaMainVersion, - resolvedScalacRuntimeVersion ); + getScalacPluginVersion()); } /**