[ 
https://issues.apache.org/jira/browse/MBUILDCACHE-24?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17676977#comment-17676977
 ] 

ASF GitHub Bot commented on MBUILDCACHE-24:
-------------------------------------------

AlexanderAshitkin commented on PR #30:
URL: 
https://github.com/apache/maven-build-cache-extension/pull/30#issuecomment-1383048755

   > Hi, I am stumbling on this issue when using either the `1.0.0` or the 
`1.0.0-SNAPSHOT` version of the maven build cache extension. I have created a 
small sample project to reproduce the issue I am facing [here 
](https://github.com/athkalia/maven-build-cache-forked-executions).
   
   Hi @athkalia 
   Thanks a lot for the reproducing project! I will try to fix the issue 
nearest time. But to be clear, so far cache works for lifecycle executions, not 
individual plugin goals. So fix will only allow running the command 
`com.athkalia:module-1:level0` but this execution will not be cached. The cache 
will be applied only to the regular root project build eg `clean install`
   I created 
[MBUILDCACHE-38](https://issues.apache.org/jira/browse/MBUILDCACHE-38) and fix 
will be provided under that ticket
   
   Thank you!




> Cache cannot be processed in presence of forked executions
> ----------------------------------------------------------
>
>                 Key: MBUILDCACHE-24
>                 URL: https://issues.apache.org/jira/browse/MBUILDCACHE-24
>             Project: Maven Build Cache Extension
>          Issue Type: Bug
>            Reporter: Alexander Ashitkin
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.0.0
>
>
> Current implementation relies on lifecycle phases presence in 
> `MojoExecution`. In case of forked execution 
> `MojoExecution#getLifecyclePhase` could return null which result in IAEs in 
> multiples places in cache:
>  
> {code:java}
> java.lang.IllegalArgumentException: Unsupported phase: null
>     at org.apache.maven.buildcache.LifecyclePhasesHelper.isLaterPhase 
> (LifecyclePhasesHelper.java:121)
>     at 
> org.apache.maven.buildcache.LifecyclePhasesHelper.isLaterPhaseThanClean 
> (LifecyclePhasesHelper.java:105)
>     at org.apache.maven.buildcache.LifecyclePhasesHelper.getCleanSegment 
> (LifecyclePhasesHelper.java:139)
>     at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
> (BuildCacheMojosExecutionStrategy.java:101)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:153)
>     at 
> org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions 
> (MojoExecutor.java:366)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:211)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:167)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 
> (MojoExecutor.java:66)
>     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run 
> (MojoExecutor.java:158)
>     at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute 
> (BuildCacheMojosExecutionStrategy.java:127)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:153)
>     at 
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject 
> (LifecycleModuleBuilder.java:117)
>     at 
> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>  (MultiThreadedBuilder.java:196)
>     at 
> org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
>  (MultiThreadedBuilder.java:186)
>     at java.util.concurrent.FutureTask.run (FutureTask.java:266)
>     at java.util.concurrent.Executors$RunnableAdapter.call 
> (Executors.java:511)
>     at java.util.concurrent.FutureTask.run (FutureTask.java:266)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker 
> (ThreadPoolExecutor.java:1149)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run 
> (ThreadPoolExecutor.java:624)
>  
> {code}
> Proposed fix is to resolve `lifecyclePhase` from the originating mojo and use 
> it as a lifecycle phase for forked mojos. 
> Optionally, the issue probably could be resolved in maven-core by properly 
> setting execution phase. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to