This is an automated email from the ASF dual-hosted git repository.

cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new ab7d766c72 Exception usage cleanup (#1910)
ab7d766c72 is described below

commit ab7d766c72be45087c2470c4f4a94100e157b4cd
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Sat Nov 16 21:36:20 2024 +0100

    Exception usage cleanup (#1910)
    
    This is just a cleanup of exception usage (by making them checked, fixing 
compiler issues, and undoing the change). There are at least two bugs (runtime 
escapes) fixed in this PR.
---
 .../src/main/java/org/apache/maven/api/Session.java       |  8 +++++---
 .../java/org/apache/maven/api/services/ModelBuilder.java  |  2 +-
 .../org/apache/maven/api/services/ProjectBuilder.java     |  7 ++++---
 .../internal/transformation/impl/ConsumerPomBuilder.java  |  4 ++--
 .../impl/DefaultConsumerPomArtifactTransformer.java       |  4 ++--
 .../internal/transformation/impl/TransformedArtifact.java |  7 +++----
 .../org/apache/maven/internal/impl/AbstractSession.java   |  8 +++++---
 .../maven/internal/impl/model/DefaultModelBuilder.java    | 15 ++++++++-------
 8 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java 
b/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java
index 830bb0f5ed..7c82a8ef4b 100644
--- a/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java
+++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Session.java
@@ -33,6 +33,7 @@ import org.apache.maven.api.annotations.ThreadSafe;
 import org.apache.maven.api.model.Repository;
 import org.apache.maven.api.services.ArtifactCoordinatesFactory;
 import org.apache.maven.api.services.DependencyCoordinatesFactory;
+import org.apache.maven.api.services.VersionResolverException;
 import org.apache.maven.api.settings.Settings;
 
 /**
@@ -742,7 +743,7 @@ public interface Session {
      * @see org.apache.maven.api.services.VersionResolver#resolve(Session, 
ArtifactCoordinates) (String)
      */
     @Nonnull
-    Version resolveVersion(@Nonnull ArtifactCoordinates artifact);
+    Version resolveVersion(@Nonnull ArtifactCoordinates artifact) throws 
VersionResolverException;
 
     /**
      * Expands a version range to a list of matching versions, in ascending 
order.
@@ -758,7 +759,7 @@ public interface Session {
      * @see 
org.apache.maven.api.services.VersionRangeResolver#resolve(Session, 
ArtifactCoordinates) (String)
      */
     @Nonnull
-    List<Version> resolveVersionRange(@Nonnull ArtifactCoordinates artifact);
+    List<Version> resolveVersionRange(@Nonnull ArtifactCoordinates artifact) 
throws VersionResolverException;
 
     /**
      * Expands a version range to a list of matching versions, in ascending 
order.
@@ -775,7 +776,8 @@ public interface Session {
      * @see 
org.apache.maven.api.services.VersionRangeResolver#resolve(Session, 
ArtifactCoordinates) (String)
      */
     @Nonnull
-    List<Version> resolveVersionRange(@Nonnull ArtifactCoordinates artifact, 
List<RemoteRepository> repositories);
+    List<Version> resolveVersionRange(@Nonnull ArtifactCoordinates artifact, 
List<RemoteRepository> repositories)
+            throws VersionResolverException;
 
     /**
      * Parses the specified version string, for example "1.0".
diff --git 
a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java
 
b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java
index 4362353185..808eeb0078 100644
--- 
a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java
+++ 
b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java
@@ -38,5 +38,5 @@ public interface ModelBuilder extends Service {
         ModelBuilderResult build(ModelBuilderRequest request) throws 
ModelBuilderException;
     }
 
-    Model buildRawModel(ModelBuilderRequest request);
+    Model buildRawModel(ModelBuilderRequest request) throws 
ModelBuilderException;
 }
diff --git 
a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectBuilder.java
 
b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectBuilder.java
index e9e7172b13..518033b601 100644
--- 
a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectBuilder.java
+++ 
b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProjectBuilder.java
@@ -40,7 +40,7 @@ public interface ProjectBuilder extends Service {
      * @throws IllegalArgumentException if an argument is {@code null} or 
invalid
      */
     @Nonnull
-    ProjectBuilderResult build(ProjectBuilderRequest request);
+    ProjectBuilderResult build(ProjectBuilderRequest request) throws 
ProjectBuilderException;
 
     /**
      * Creates a {@link org.apache.maven.api.Project} from a POM file.
@@ -52,7 +52,8 @@ public interface ProjectBuilder extends Service {
      * @see #build(ProjectBuilderRequest)
      */
     @Nonnull
-    default ProjectBuilderResult build(@Nonnull Session session, @Nonnull 
Source source) {
+    default ProjectBuilderResult build(@Nonnull Session session, @Nonnull 
Source source)
+            throws ProjectBuilderException {
         return build(ProjectBuilderRequest.build(session, source));
     }
 
@@ -66,7 +67,7 @@ public interface ProjectBuilder extends Service {
      * @see #build(ProjectBuilderRequest)
      */
     @Nonnull
-    default ProjectBuilderResult build(@Nonnull Session session, @Nonnull Path 
path) {
+    default ProjectBuilderResult build(@Nonnull Session session, @Nonnull Path 
path) throws ProjectBuilderException {
         return build(ProjectBuilderRequest.build(session, path));
     }
 }
diff --git 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
index 70cfec6b86..7de9934e2b 100644
--- 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
+++ 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/ConsumerPomBuilder.java
@@ -24,7 +24,7 @@ import java.io.IOException;
 import java.nio.file.Path;
 
 import org.apache.maven.api.model.Model;
-import org.apache.maven.model.building.ModelBuildingException;
+import org.apache.maven.api.services.ModelBuilderException;
 import org.apache.maven.project.MavenProject;
 import org.eclipse.aether.RepositorySystemSession;
 
@@ -35,5 +35,5 @@ import org.eclipse.aether.RepositorySystemSession;
 interface ConsumerPomBuilder {
 
     Model build(RepositorySystemSession session, MavenProject project, Path 
src)
-            throws ModelBuildingException, IOException, XMLStreamException;
+            throws ModelBuilderException, IOException, XMLStreamException;
 }
diff --git 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
index 0abd3e1608..60865274a0 100644
--- 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
+++ 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomArtifactTransformer.java
@@ -36,8 +36,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
 
 import org.apache.maven.api.feature.Features;
 import org.apache.maven.api.model.Model;
+import org.apache.maven.api.services.ModelBuilderException;
 import org.apache.maven.internal.transformation.ConsumerPomArtifactTransformer;
-import org.apache.maven.model.building.ModelBuildingException;
 import org.apache.maven.model.v4.MavenStaxWriter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.artifact.ProjectArtifact;
@@ -112,7 +112,7 @@ class DefaultConsumerPomArtifactTransformer implements 
ConsumerPomArtifactTransf
     }
 
     void transform(MavenProject project, RepositorySystemSession session, Path 
src, Path tgt)
-            throws ModelBuildingException, XMLStreamException, IOException {
+            throws ModelBuilderException, XMLStreamException, IOException {
         Model model = builder.build(session, project, src);
         write(model, tgt);
     }
diff --git 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
index 07e3806d29..e928e61018 100644
--- 
a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
+++ 
b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/TransformedArtifact.java
@@ -31,9 +31,9 @@ import java.util.Objects;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Supplier;
 
+import org.apache.maven.api.services.ModelBuilderException;
 import org.apache.maven.artifact.DefaultArtifact;
 import org.apache.maven.internal.transformation.TransformationFailedException;
-import org.apache.maven.model.building.ModelBuildingException;
 import org.apache.maven.project.MavenProject;
 import org.eclipse.aether.RepositorySystemSession;
 
@@ -97,13 +97,12 @@ class TransformedArtifact extends DefaultArtifact {
                 return null;
             }
             return target.toFile();
-        } catch (IOException | NoSuchAlgorithmException | XMLStreamException | 
ModelBuildingException e) {
+        } catch (IOException | NoSuchAlgorithmException | XMLStreamException | 
ModelBuilderException e) {
             throw new TransformationFailedException(e);
         }
     }
 
-    private String mayUpdate()
-            throws IOException, NoSuchAlgorithmException, XMLStreamException, 
ModelBuildingException {
+    private String mayUpdate() throws IOException, NoSuchAlgorithmException, 
XMLStreamException, ModelBuilderException {
         String result;
         Path src = sourcePathProvider.get();
         if (src == null) {
diff --git 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
index 0054e5ada0..e0a59e07ea 100644
--- 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
+++ 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
@@ -87,6 +87,7 @@ import org.apache.maven.api.services.TypeRegistry;
 import org.apache.maven.api.services.VersionParser;
 import org.apache.maven.api.services.VersionRangeResolver;
 import org.apache.maven.api.services.VersionResolver;
+import org.apache.maven.api.services.VersionResolverException;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -839,17 +840,18 @@ public abstract class AbstractSession implements 
InternalSession {
     }
 
     @Override
-    public Version resolveVersion(ArtifactCoordinates artifact) {
+    public Version resolveVersion(ArtifactCoordinates artifact) throws 
VersionResolverException {
         return getService(VersionResolver.class).resolve(this, 
artifact).getVersion();
     }
 
     @Override
-    public List<Version> resolveVersionRange(ArtifactCoordinates artifact) {
+    public List<Version> resolveVersionRange(ArtifactCoordinates artifact) 
throws VersionResolverException {
         return getService(VersionRangeResolver.class).resolve(this, 
artifact).getVersions();
     }
 
     @Override
-    public List<Version> resolveVersionRange(ArtifactCoordinates artifact, 
List<RemoteRepository> repositories) {
+    public List<Version> resolveVersionRange(ArtifactCoordinates artifact, 
List<RemoteRepository> repositories)
+            throws VersionResolverException {
         return getService(VersionRangeResolver.class)
                 .resolve(this, artifact, repositories)
                 .getVersions();
diff --git 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
index 95a364bdd1..67198b07c2 100644
--- 
a/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
+++ 
b/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java
@@ -894,7 +894,7 @@ public class DefaultModelBuilder implements ModelBuilder {
             return parentModel;
         }
 
-        private Model resolveParent(Model childModel) {
+        private Model resolveParent(Model childModel) throws 
ModelBuilderException {
             Model parentModel = null;
             if (isBuildRequest()) {
                 parentModel = readParentLocally(childModel);
@@ -906,7 +906,7 @@ public class DefaultModelBuilder implements ModelBuilder {
         }
 
         private Model readParentLocally(Model childModel) throws 
ModelBuilderException {
-            ModelSource candidateSource = null;
+            ModelSource candidateSource;
 
             Parent parent = childModel.getParent();
             String parentPath = parent.getRelativePath();
@@ -1493,7 +1493,7 @@ public class DefaultModelBuilder implements ModelBuilder {
         /**
          * Reads the request source's parent.
          */
-        Model readAsParentModel() {
+        Model readAsParentModel() throws ModelBuilderException {
             return cache(request.getSource(), PARENT, 
this::doReadAsParentModel);
         }
 
@@ -1664,7 +1664,7 @@ public class DefaultModelBuilder implements ModelBuilder {
                     importSource = modelResolver.resolveModel(
                             request.getSession(), repositories, dependency, 
new AtomicReference<>());
                 }
-            } catch (ModelBuilderException e) {
+            } catch (ModelBuilderException | ModelResolverException e) {
                 StringBuilder buffer = new StringBuilder(256);
                 buffer.append("Non-resolvable import POM");
                 if (!containsCoordinates(e.getMessage(), groupId, artifactId, 
version)) {
@@ -1719,7 +1719,8 @@ public class DefaultModelBuilder implements ModelBuilder {
             return importModel;
         }
 
-        ModelSource resolveReactorModel(String groupId, String artifactId, 
String version) {
+        ModelSource resolveReactorModel(String groupId, String artifactId, 
String version)
+                throws ModelBuilderException {
             Set<ModelSource> sources = mappedSources.get(new GAKey(groupId, 
artifactId));
             if (sources != null) {
                 for (ModelSource source : sources) {
@@ -1737,7 +1738,7 @@ public class DefaultModelBuilder implements ModelBuilder {
             return cache.computeIfAbsent(groupId, artifactId, version, tag, 
supplier);
         }
 
-        private <T> T cache(Source source, String tag, Supplier<T> supplier) {
+        private <T> T cache(Source source, String tag, Supplier<T> supplier) 
throws ModelBuilderException {
             return cache.computeIfAbsent(source, tag, supplier);
         }
 
@@ -1831,7 +1832,7 @@ public class DefaultModelBuilder implements ModelBuilder {
     public Model buildRawModel(ModelBuilderRequest request) throws 
ModelBuilderException {
         ModelBuilderSessionState build = new ModelBuilderSessionState(request);
         Model model = build.readRawModel();
-        if (((ModelProblemCollector) build).hasErrors()) {
+        if (build.hasErrors()) {
             throw build.newModelBuilderException();
         }
         return model;

Reply via email to