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]

Reply via email to