gnodet-bot commented on code in PR #298:
URL: https://github.com/apache/maven/pull/298#discussion_r4019573571
##########
maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java:
##########
@@ -342,11 +342,12 @@ private List<MavenProject>
getProjectsForMavenReactor(MavenSession session) thro
}
List<File> files = Arrays.asList(request.getPom().getAbsoluteFile());
- collectProjects(projects, files, request);
+ boolean problems = collectProjects(projects, files, request);
+ session.setModelProblems(problems);
Review Comment:
⚠️ **Pomless path skipped**: the early-return branch for `request.getPom()
== null` (around line 333) never calls `setModelProblems()`, leaving the
session at `false` even if the standalone project has problems. This line is
only reached when a POM file is present.
Add `session.setModelProblems(false)` before the early `return projects;` in
the pomless branch, or restructure to have a single return point so
`setModelProblems()` is always called.
##########
maven-core/src/main/java/org/apache/maven/execution/MavenSession.java:
##########
@@ -253,6 +255,26 @@ public void setParallel(boolean parallel) {
this.parallel = parallel;
}
+ /**
+ * Indicates whether any problems were detected while building the Maven
models.
+ *
+ * @return {@code true} if model problems were detected, {@code false}
otherwise
+ * @since 3.10.0
+ */
+ public boolean hasModelProblems() {
+ return modelProblems;
+ }
+
+ /**
+ * Records whether any problems were detected while building the Maven
models.
+ *
+ * @param modelProblems whether model problems were detected
+ * @since 3.10.0
+ */
+ public void setModelProblems(boolean modelProblems) {
+ this.modelProblems = modelProblems;
+ }
+
public RepositorySystemSession getRepositorySession() {
Review Comment:
⚠️ **Resettable flag**: `setModelProblems(boolean)` accepts `false`, meaning
it can clear a previously-set `true`. The API contract should either be
documented as "call at most once per build" or changed to an additive setter:
```suggestion
public void setModelProblems() {
this.modelProblems = true;
}
```
This makes the flag monotonic and prevents accidental resets by callers
passing `false`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]