[
https://issues.apache.org/jira/browse/MBUILDCACHE-115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17948165#comment-17948165
]
Sebastian Tiemann commented on MBUILDCACHE-115:
-----------------------------------------------
I have to correct me.
While working on another issue with the provided reproduction repository, I
figured out that there has to be a build-cache entry which will be restored and
only then, the mentioned Guice-issue occurs as it seems.
When I rebuild the project without an existing cache entry, everything works
fine.
For documentation reasons, I leave the whole unabridged output here.
I compared this to the log provided in
[https://github.com/ascopes/protobuf-maven-plugin/issues/472], the stacks match
mostly.
{code:java}
[INFO] --------------------< com.sebtiem:mbuildcache-115 >---------------------
[INFO] Building mbuildcache-115 0.0.1-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] Going to calculate checksum for project [groupId=com.sebtiem,
artifactId=mbuildcache-115, version=0.0.1-SNAPSHOT]
[INFO] Scanning plugins configurations to find input files. Probing is enabled,
values will be checked for presence in file system
[INFO] Found 3 input files. Project dir processing: 1, plugins: 1 millis
[INFO] Project inputs calculated in 6 ms. XX checksum [d180d69553353d9d]
calculated in 6 ms.
[INFO] Attempting to restore project com.sebtiem:mbuildcache-115 from build
cache
[INFO] Local build found by checksum d180d69553353d9d
[INFO] Found cached build, restoring com.sebtiem:mbuildcache-115 from cache by
checksum d180d69553353d9d
[INFO] Skipping plugin execution (cached): protobuf:generate
[WARNING] Error injecting:
io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo
com.google.inject.ProvisionException: Unable to provision, see the following
errors:1) [Guice/ErrorInCustomProvider]: IllegalStateException
at MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:50)
\_ installed by: WireModule -> MojoExecutionScopeModule
at TemporarySpace.<init>(TemporarySpace.java:45)
\_ for 2nd parameter
at UrlResourceFetcher.<init>(UrlResourceFetcher.java:65)
\_ for 1st parameter
at ProtocResolver.<init>(ProtocResolver.java:63)
\_ for 5th parameter
at ProtobufBuildOrchestrator.<init>(ProtobufBuildOrchestrator.java:71)
\_ for 2nd parameter
at AbstractGenerateMojo.sourceCodeGenerator(AbstractGenerateMojo.java:71)
\_ for field sourceCodeGenerator
while locating MainGenerateMojoLearn more:
https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER1
error======================
Full classname legend:
======================
AbstractGenerateMojo:
"io.github.ascopes.protobufmavenplugin.mojo.AbstractGenerateMojo"
MainGenerateMojo:
"io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo"
MojoExecutionScopeModule:
"org.apache.maven.execution.scope.internal.MojoExecutionScopeModule"
ProtobufBuildOrchestrator:
"io.github.ascopes.protobufmavenplugin.generation.ProtobufBuildOrchestrator"
ProtocResolver:
"io.github.ascopes.protobufmavenplugin.protoc.ProtocResolver"
TemporarySpace:
"io.github.ascopes.protobufmavenplugin.utils.TemporarySpace"
UrlResourceFetcher:
"io.github.ascopes.protobufmavenplugin.dependencies.UrlResourceFetcher"
WireModule: "org.eclipse.sisu.wire.WireModule"
========================
End of classname legend:
======================== at
com.google.inject.internal.InternalProvisionException.toProvisionException
(InternalProvisionException.java:251)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1104)
at com.google.inject.internal.InjectorImpl.getInstance
(InjectorImpl.java:1139)
at org.eclipse.sisu.space.AbstractDeferredClass.get
(AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision
(ProviderInternalFactory.java:86)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision
(InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call
(ProviderInternalFactory.java:67)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet
(ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get
(InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:257)
at
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo
(DefaultMavenPluginManager.java:491)
at
org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.restoreProject
(BuildCacheMojosExecutionStrategy.java:277)
at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute
(BuildCacheMojosExecutionStrategy.java:136)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke
(DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:314)
at org.codehaus.classworlds.Launcher.main (Launcher.java:41)
Caused by: java.lang.IllegalStateException
at org.apache.maven.execution.scope.internal.MojoExecutionScope$1.get
(MojoExecutionScope.java:43)
at com.google.inject.internal.ProviderInternalFactory.provision
(ProviderInternalFactory.java:86)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision
(InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call
(ProviderInternalFactory.java:67)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision
(BeanScheduler.java:232)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:117)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet
(ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get
(InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get
(ProviderToInternalFactoryAdapter.java:40)
at org.apache.maven.execution.scope.internal.MojoExecutionScope$2.get
(MojoExecutionScope.java:112)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get
(InternalFactoryToProviderAdapter.java:45)
at com.google.inject.internal.SingleParameterInjector.inject
(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll
(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision
(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.access$000
(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call
(ConstructorInjector.java:98)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ConstructorInjector.construct
(ConstructorInjector.java:93)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get
(ConstructorBindingImpl.java:300)
at com.google.inject.internal.SingleParameterInjector.inject
(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll
(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision
(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.access$000
(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call
(ConstructorInjector.java:98)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ConstructorInjector.construct
(ConstructorInjector.java:93)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get
(ConstructorBindingImpl.java:300)
at com.google.inject.internal.SingleParameterInjector.inject
(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll
(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision
(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.access$000
(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call
(ConstructorInjector.java:98)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ConstructorInjector.construct
(ConstructorInjector.java:93)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get
(ConstructorBindingImpl.java:300)
at com.google.inject.internal.SingleParameterInjector.inject
(SingleParameterInjector.java:40)
at com.google.inject.internal.SingleParameterInjector.getAll
(SingleParameterInjector.java:60)
at com.google.inject.internal.ConstructorInjector.provision
(ConstructorInjector.java:113)
at com.google.inject.internal.ConstructorInjector.access$000
(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call
(ConstructorInjector.java:98)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ConstructorInjector.construct
(ConstructorInjector.java:93)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get
(ConstructorBindingImpl.java:300)
at com.google.inject.internal.SingleFieldInjector.inject
(SingleFieldInjector.java:50)
at com.google.inject.internal.MembersInjectorImpl.injectMembers
(MembersInjectorImpl.java:146)
at com.google.inject.internal.ConstructorInjector.provision
(ConstructorInjector.java:124)
at com.google.inject.internal.ConstructorInjector.access$000
(ConstructorInjector.java:33)
at com.google.inject.internal.ConstructorInjector$1.call
(ConstructorInjector.java:98)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ConstructorInjector.construct
(ConstructorInjector.java:93)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get
(ConstructorBindingImpl.java:300)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at com.google.inject.internal.InjectorImpl.getInstance
(InjectorImpl.java:1139)
at org.eclipse.sisu.space.AbstractDeferredClass.get
(AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision
(ProviderInternalFactory.java:86)
at
com.google.inject.internal.InternalFactoryToInitializableAdapter.provision
(InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call
(ProviderInternalFactory.java:67)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:109)
at
com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision
(ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision
(ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet
(ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get
(InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup
(DefaultPlexusContainer.java:257)
at
org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo
(DefaultMavenPluginManager.java:491)
at
org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.restoreProject
(BuildCacheMojosExecutionStrategy.java:277)
at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute
(BuildCacheMojosExecutionStrategy.java:136)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke
(DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:314)
at org.codehaus.classworlds.Launcher.main (Launcher.java:41)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.410 s
[INFO] Finished at: 2025-04-29T15:04:46+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] org.apache.maven.plugin.PluginContainerException: Unable to load the
mojo 'generate' (or one of its required components) from the plugin
'io.github.ascopes:protobuf-maven-plugin:2.7.0':
com.google.inject.ProvisionException: Unable to provision, see the following
errors:
[ERROR]
[ERROR] 1) [Guice/ErrorInCustomProvider]: IllegalStateException
[ERROR] at
MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:50)
[ERROR] \_ installed by: WireModule -> MojoExecutionScopeModule
[ERROR] at TemporarySpace.<init>(TemporarySpace.java:45)
[ERROR] \_ for 2nd parameter
[ERROR] at UrlResourceFetcher.<init>(UrlResourceFetcher.java:65)
[ERROR] \_ for 1st parameter
[ERROR] at ProtocResolver.<init>(ProtocResolver.java:63)
[ERROR] \_ for 5th parameter
[ERROR] at ProtobufBuildOrchestrator.<init>(ProtobufBuildOrchestrator.java:71)
[ERROR] \_ for 2nd parameter
[ERROR] at
AbstractGenerateMojo.sourceCodeGenerator(AbstractGenerateMojo.java:71)
[ERROR] \_ for field sourceCodeGenerator
[ERROR] while locating MainGenerateMojo
[ERROR] at ClassRealm[plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0,
parent: ClassLoaders$AppClassLoader@5a07e868]
[ERROR] \_ installed by: WireModule -> PlexusBindingModule
[ERROR] while locating Mojo annotated with
@Named("io.github.ascopes:protobuf-maven-plugin:2.7.0:generate")
[ERROR]
[ERROR] Learn more:
[ERROR] https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER
[ERROR]
[ERROR] 1 error
[ERROR]
[ERROR] ======================
[ERROR] Full classname legend:
[ERROR] ======================
[ERROR] AbstractGenerateMojo:
"io.github.ascopes.protobufmavenplugin.mojo.AbstractGenerateMojo"
[ERROR] ClassLoaders$AppClassLoader:
"jdk.internal.loader.ClassLoaders$AppClassLoader"
[ERROR] MainGenerateMojo:
"io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo"
[ERROR] Mojo: "org.apache.maven.plugin.Mojo"
[ERROR] MojoExecutionScopeModule:
"org.apache.maven.execution.scope.internal.MojoExecutionScopeModule"
[ERROR] Named: "com.google.inject.name.Named"
[ERROR] PlexusBindingModule:
"org.eclipse.sisu.plexus.PlexusBindingModule"
[ERROR] ProtobufBuildOrchestrator:
"io.github.ascopes.protobufmavenplugin.generation.ProtobufBuildOrchestrator"
[ERROR] ProtocResolver:
"io.github.ascopes.protobufmavenplugin.protoc.ProtocResolver"
[ERROR] TemporarySpace:
"io.github.ascopes.protobufmavenplugin.utils.TemporarySpace"
[ERROR] UrlResourceFetcher:
"io.github.ascopes.protobufmavenplugin.dependencies.UrlResourceFetcher"
[ERROR] WireModule: "org.eclipse.sisu.wire.WireModule"
[ERROR] ========================
[ERROR] End of classname legend:
[ERROR] ========================
[ERROR]
[ERROR] role: org.apache.maven.plugin.Mojo
[ERROR] roleHint: io.github.ascopes:protobuf-maven-plugin:2.7.0:generate
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.{code}
> MojoExecution is not seeded in session scope, causes DI failure
> ---------------------------------------------------------------
>
> Key: MBUILDCACHE-115
> URL: https://issues.apache.org/jira/browse/MBUILDCACHE-115
> Project: Maven Build Cache Extension
> Issue Type: Bug
> Reporter: Tamas Cservenak
> Priority: Major
>
> It seems on "restore project" not everything is seeded in Guice session
> scope. Injecting {{org.apache.maven.plugin.MojoExecution}} is not possible,
> causes ISEx as is out of scope.
> Unsure why MBUILDCACHE-110 mentions "forces dependency on plexus utils", when
> the stack trace is about Guice scope issue.
> Example of failure point:
> https://github.com/ascopes/protobuf-maven-plugin/blob/aeff23cfae4cef0f18f2dd232c849febe4815bf1/protobuf-maven-plugin/src/main/java/io/github/ascopes/protobufmavenplugin/utils/TemporarySpace.java#L45
> Example of error message:
> https://github.com/ascopes/protobuf-maven-plugin/issues/472
> (but again, unsure how plexus-utils come into play here)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)