gnodet opened a new issue, #12986:
URL: https://github.com/apache/maven/issues/12986
## Problem
Plugins that use the deprecated `PlexusContainer` injection via
`MavenSession.lookup()` get a `NullPointerException` in Maven 4 because
`this.container` is null:
```
[ERROR] Failed to execute goal
org.codehaus.groovy.maven:gmaven-plugin:1.0:execute
on project manual: java.lang.NullPointerException:
Cannot invoke "org.codehaus.plexus.PlexusContainer.lookup(String)"
because "this.container" is null
```
Stack trace:
```
at org.apache.maven.execution.MavenSession.lookup(MavenSession.java:477)
at
org.codehaus.groovy.maven.plugin.execute.ExpressionEvaluatorImpl.lookupPathTranslator(...)
at
org.codehaus.groovy.maven.plugin.execute.ExpressionEvaluatorImpl.<init>(...)
```
## Affected project
- `servicemix` — uses `gmaven-plugin:1.0` which calls
`MavenSession.lookup()` internally
## Analysis
`MavenSession.container` was deprecated but still used by several plugins.
In Maven 4, it appears the field is no longer populated. While the API is
deprecated, the result is a hard NPE rather than a graceful deprecation warning.
## Expected behavior
Either:
1. Continue injecting the PlexusContainer into MavenSession for backward
compatibility (with a deprecation warning)
2. Or throw a descriptive exception (e.g.,
`UnsupportedOperationException("PlexusContainer injection was removed in Maven
4. Use JSR 330 injection instead.")`) rather than an NPE
## Context
Data from [maven4-testing](https://github.com/gnodet/maven4-testing) run
#13307 testing `maven-4.0.x` against all Apache projects.
--
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]