This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch bolder-medallion in repository https://gitbox.apache.org/repos/asf/maven.git
commit f640018d1d9c66c1f8d084a93711e32782a3f3f4 Author: Guillaume Nodet <[email protected]> AuthorDate: Mon Jun 22 11:28:28 2026 +0200 Fix NPE in DefaultLookup.lookupOptional() when container returns null PlexusContainer.lookup() can return null instead of throwing ComponentLookupException. Using Optional.of(null) causes a NullPointerException. Use Optional.ofNullable() instead so that a null lookup result is correctly represented as Optional.empty(). This fixes maven-jdeprscan-plugin integration tests (list-default, list-forremoval) which fail on Maven 4.0.x because DefaultToolchainManager.retrieveContext() calls lookupOptional(Project.class) and the container returns null. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../src/main/java/org/apache/maven/internal/impl/DefaultLookup.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java index a5a0f82d94..f800e2e357 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLookup.java @@ -64,7 +64,7 @@ public <T> T lookup(Class<T> type, String name) { @Override public <T> Optional<T> lookupOptional(Class<T> type) { try { - return Optional.of(container.lookup(type)); + return Optional.ofNullable(container.lookup(type)); } catch (ComponentLookupException e) { if (e.getCause() instanceof NoSuchElementException) { return Optional.empty(); @@ -76,7 +76,7 @@ public <T> Optional<T> lookupOptional(Class<T> type) { @Override public <T> Optional<T> lookupOptional(Class<T> type, String name) { try { - return Optional.of(container.lookup(type, name)); + return Optional.ofNullable(container.lookup(type, name)); } catch (ComponentLookupException e) { if (e.getCause() instanceof NoSuchElementException) { return Optional.empty();
