diff --git a/lemminx-maven/src/main/java/org/eclipse/lemminx/extensions/maven/utils/MavenPluginUtils.java b/lemminx-maven/src/main/java/org/eclipse/lemminx/extensions/maven/utils/MavenPluginUtils.java index d40a1f8e..4e72be4b 100644 --- a/lemminx-maven/src/main/java/org/eclipse/lemminx/extensions/maven/utils/MavenPluginUtils.java +++ b/lemminx-maven/src/main/java/org/eclipse/lemminx/extensions/maven/utils/MavenPluginUtils.java @@ -108,7 +108,12 @@ public static Set collectPluginConfigurationParameters(IPositionReque public static Set collectPluginConfigurationMojoParameters(IPositionRequest request, MavenLemminxExtension plugin) throws PluginResolutionException, PluginDescriptorParsingException, InvalidPluginDescriptorException { - PluginDescriptor pluginDescriptor = MavenPluginUtils.getContainingPluginDescriptor(request.getNode(), plugin); + PluginDescriptor pluginDescriptor = null; + try { + pluginDescriptor = MavenPluginUtils.getContainingPluginDescriptor(request.getNode(), plugin); + } catch (PluginResolutionException | PluginDescriptorParsingException | InvalidPluginDescriptorException e) { + LOGGER.log(Level.SEVERE, e.getMessage(), e); + } if (pluginDescriptor == null) { return Collections.emptySet(); } @@ -127,8 +132,9 @@ public static Set collectPluginConfigurationMojoParameters(IPosit return Collections.emptySet(); } plugin.getMavenSession().setProjects(Collections.singletonList(project)); + final var finalPluginDescriptor = pluginDescriptor; return mojosToConsiderList.stream().flatMap(mojo -> PlexusConfigHelper - .loadMojoParameters(pluginDescriptor, mojo, plugin.getMavenSession(), plugin.getBuildPluginManager()) + .loadMojoParameters(finalPluginDescriptor, mojo, plugin.getMavenSession(), plugin.getBuildPluginManager()) .stream()).collect(Collectors.toSet()); } @@ -192,8 +198,11 @@ public static PluginDescriptor getContainingPluginDescriptor(DOMNode node, pluginDescriptor = lemminxMavenPlugin.getMavenPluginManager().getPluginDescriptor(plugin, project.getRemotePluginRepositories().stream().collect(Collectors.toList()), lemminxMavenPlugin.getMavenSession().getRepositorySession()); - } catch (PluginResolutionException ex) { + } catch (PluginResolutionException | PluginDescriptorParsingException | InvalidPluginDescriptorException ex) { LOGGER.log(Level.SEVERE, ex.getMessage(), ex); + throw ex; // Re-throw the exception to allow gathering the diagnostics + } catch (Exception e) { + LOGGER.log(Level.SEVERE, "An error occured while getting a plugin descriptor: " + e.getMessage(), e); } if (pluginDescriptor == null && "0.0.1-SNAPSHOT".equals(plugin.getVersion())) { // probably missing or not parsed version Optional version;