You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Kirk Lund <kl...@apache.org> on 2019/03/26 17:43:27 UTC

Weird intermittent build error caused by spotlessJava

Intermittent build error caused by spotlessJava. My checkout of Geode
intermittently gets into a state that then fails to build. I've been seeing
this come and go for the last month or two. I'm not sure what puts it into
this state but executing:

$ ./gradlew clean build -x test

...will repeatedly fail in junit:spotlessJava with a
java.lang.reflect.InvocationTargetException and a root cause of
ava.lang.NoClassDefFoundError:
org/openjdk/tools/javac/comp/InferenceContext.

Stopping the gradle daemon(s) does not clear the problem up. Cleaning does
not clear it up. Changing JDK version does not clear it up. But I just
discovered this morning that if I attempt to execute spotless directly that
finally clears it up:

$ ./gradlew spotlessApply
or
$ ./gradlew spotlessCheck

After either spotlessApply or spotlessCheck, the build will stop failing
when I execute:

$ ./gradlew clean build -x test

The stack thrown by spotlessJava and printed by gradle when it's stuck in
this state is below...

> Task :geode-junit:spotlessJava FAILED
Step 'removeUnusedImports' found problem in
'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
null
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at
com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
        at
com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
        at
com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
        at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
        at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
        at
com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
        at
com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at
org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at
org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
        at
org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at
org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at
org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
        at
org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
        at
org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
        at
org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
        at
org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
        at
org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
        at
org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
        at
org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
        at
org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
        at
org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
        at
org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
        at java.util.Optional.orElseGet(Optional.java:267)
        at
org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
        at
org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
        at
org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
        at
org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
        at
org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
        at
org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
        at
org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
        at java.util.Optional.map(Optional.java:215)
        at
org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
        at
org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
        at
org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
        at
org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
        at
org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
        at
org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
        at
org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
        at
org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
        at
org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
        at
org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at
org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
        at
org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
        at
org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
        at
org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
        at
org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
        at
org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
        at
org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
        at
org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
        at
org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
        at
org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
        at
org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
        at
org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
        at
org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at
org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
        at
org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at
org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
        at
org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
        at
org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
        at
org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
        at
org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
        at
org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
        at
org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
        at
org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
        at
org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
        at
org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
        at
org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
        at
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at
org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError:
org/openjdk/tools/javac/comp/InferenceContext
        at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
        at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
        at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
        at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
        at
org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
        at
org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
        at org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
        at org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
        at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
        at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
        at org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
        at org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
        at
org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
        at
org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
        at
org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
        at
org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
        at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
        at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
        at org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
        at
org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
        at
org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
        at
org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
        at
com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
        at
com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
        at
com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
        ... 97 more

Re: Weird intermittent build error caused by spotlessJava

Posted by Patrick Rhomberg <pr...@pivotal.io>.
I suppose that's true, yes -- if the branch is old enough that it predates
our work to improve the gradle correctness, then sure, that work isn't
there to guarantee correctness of the older build.  But if your branch is
as recent as the last few months, then Gradle should notice the changes in
the filesystem and build whatever is necessary.

Even with the older branch, though, most tasks should be getting rerun
anyway.  Since if the various tasks definitions have changed, they can't be
UP-TO-DATE.

On Tue, Mar 26, 2019 at 3:30 PM Kirk Lund <kl...@apache.org> wrote:

> Are you sure it's not necessary to do a clean build when switching between
> different branches? Especially branches that are far enough apart in
> revisions that their gradle build files are different? Sometimes two
> branches, such as for two different releases, are significantly different
> in the gradle files.
>
> On Tue, Mar 26, 2019 at 2:49 PM Patrick Rhomberg <pr...@pivotal.io>
> wrote:
>
> > As Dan mentioned, the few times I've seen this has been a result of
> running
> > clean in the same build set as spotless.  While that "shouldn't" be an
> > issue, it seems to be the underlying cause.
> >
> > I encourage you to not clean every time you build.  We've done a lot of
> > work lately to improve the correctness of our build, so
> incrementalization
> > and task caching should (no scare quotes this time) be the go-to, rather
> > than always cleaning before you build.  If you have a specific reason you
> > think you need to clean before building, that's something we should fix.
> > As the common developer use-case, we have ./gradlew dev to do both
> compile
> > / assembly and spotlessApply.
> >
> > As a side note, both of your configurations could also be achieved via
> > command-line arguments --no-daemon and --no-parallel respectively, if you
> > don't want that behavior to be the default as specified in your local
> > ~/.gradle/gradle.properties.
> >
> > On Tue, Mar 26, 2019 at 11:46 AM Kirk Lund <kl...@apache.org> wrote:
> >
> > > I actually have two lines in my gradle.properties. The combo seems to
> > make
> > > spotless behave when it gets into the broken state I mentioned before:
> > >
> > > org.gradle.daemon=false
> > > org.gradle.parallel=false
> > >
> > > This does make it slower but slower is better than broken.
> > >
> > > On Tue, Mar 26, 2019 at 11:38 AM Kirk Lund <kl...@apache.org> wrote:
> > >
> > > > I just had this occur again. And I found another solution, albeit
> not a
> > > > great one, but if you disable org.gradle.daemon that also clears up
> > this
> > > > problem. You can add this to ~/.gradle/gradle.properties:
> > > >
> > > > org.gradle.daemon=false
> > > >
> > > > Just to clarify, I'm on a Mac using gradlew in geode (I don't have my
> > own
> > > > version of gradle installed) and oracle jdk1.8.0_202.
> > > >
> > > > On Tue, Mar 26, 2019 at 10:48 AM Kirk Lund <kl...@apache.org> wrote:
> > > >
> > > >> Few more details that might help others...
> > > >>
> > > >> Each Geode module fails in the same way but obviously on a different
> > > >> .java file, and I have not altered these .java files -- they do not
> > > appear
> > > >> to have any format issues involving imports.
> > > >>
> > > >> Once gradle is in this state, switching branches from a feature
> branch
> > > to
> > > >> develop (which has no local changes) does not clear it up either.
> > > >>
> > > >> > Task :geode-junit:spotlessJava FAILED
> > > >> Step 'removeUnusedImports' found problem in
> > > >>
> > >
> >
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> > > >> null
> > > >> java.lang.reflect.InvocationTargetException
> > > >>
> > > >> On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org>
> wrote:
> > > >>
> > > >>> Intermittent build error caused by spotlessJava. My checkout of
> Geode
> > > >>> intermittently gets into a state that then fails to build. I've
> been
> > > seeing
> > > >>> this come and go for the last month or two. I'm not sure what puts
> it
> > > into
> > > >>> this state but executing:
> > > >>>
> > > >>> $ ./gradlew clean build -x test
> > > >>>
> > > >>> ...will repeatedly fail in junit:spotlessJava with a
> > > >>> java.lang.reflect.InvocationTargetException and a root cause of
> > > >>> ava.lang.NoClassDefFoundError:
> > > >>> org/openjdk/tools/javac/comp/InferenceContext.
> > > >>>
> > > >>> Stopping the gradle daemon(s) does not clear the problem up.
> Cleaning
> > > >>> does not clear it up. Changing JDK version does not clear it up.
> But
> > I
> > > just
> > > >>> discovered this morning that if I attempt to execute spotless
> > directly
> > > that
> > > >>> finally clears it up:
> > > >>>
> > > >>> $ ./gradlew spotlessApply
> > > >>> or
> > > >>> $ ./gradlew spotlessCheck
> > > >>>
> > > >>> After either spotlessApply or spotlessCheck, the build will stop
> > > failing
> > > >>> when I execute:
> > > >>>
> > > >>> $ ./gradlew clean build -x test
> > > >>>
> > > >>> The stack thrown by spotlessJava and printed by gradle when it's
> > stuck
> > > >>> in this state is below...
> > > >>>
> > > >>> > Task :geode-junit:spotlessJava FAILED
> > > >>> Step 'removeUnusedImports' found problem in
> > > >>>
> > >
> >
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> > > >>> null
> > > >>> java.lang.reflect.InvocationTargetException
> > > >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > > >>>         at
> > > >>>
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > > >>>         at
> > > >>>
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> > > >>>         at
> > > >>>
> > >
> >
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
> > > >>>         at
> > > >>>
> > >
> >
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
> > > >>>         at
> > > >>>
> > >
> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
> > > >>>         at
> > com.diffplug.spotless.Formatter.compute(Formatter.java:230)
> > > >>>         at
> > com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
> > > >>>         at
> > > >>>
> > com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
> > > >>>         at
> > > >>>
> > >
> >
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
> > > >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > Method)
> > > >>>         at
> > > >>>
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > > >>>         at
> > > >>>
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> > > >>>         at
> > > >>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
> > > >>>         at java.util.Optional.orElseGet(Optional.java:267)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
> > > >>>         at java.util.Optional.map(Optional.java:215)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
> > > >>>         at
> > > >>>
> > >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > > >>>         at
> > > >>>
> > >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > > >>>         at
> > > >>>
> > >
> >
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
> > > >>>         at java.lang.Thread.run(Thread.java:748)
> > > >>> Caused by: java.lang.NoClassDefFoundError:
> > > >>> org/openjdk/tools/javac/comp/InferenceContext
> > > >>>         at
> org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
> > > >>>         at
> > org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
> > > >>>         at
> org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
> > > >>>         at
> > org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
> > > >>>         at
> > > >>>
> > org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
> > > >>>         at
> > > >>>
> > >
> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
> > > >>>         at
> > > org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
> > > >>>         at
> > > >>> org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
> > > >>>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
> > > >>>         at
> org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
> > > >>>         at
> > > >>> org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
> > > >>>         at
> > > >>> org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
> > > >>>         at
> > > >>>
> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
> > > >>>         at
> > > >>>
> > org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
> > > >>>         at
> > > >>>
> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
> > > >>>         at
> > > >>>
> > org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
> > > >>>         at
> > org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
> > > >>>         at
> > org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
> > > >>>         at
> > > >>> org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
> > > >>>         at
> > > >>> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
> > > >>>         at
> > > >>>
> > >
> >
> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
> > > >>>         at
> > > >>>
> > >
> >
> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
> > > >>>         at
> > > >>>
> > >
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
> > > >>>         at
> > > >>>
> > >
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
> > > >>>         at
> > > >>>
> > >
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
> > > >>>         ... 97 more
> > > >>>
> > > >>
> > >
> >
>

Re: Weird intermittent build error caused by spotlessJava

Posted by Kirk Lund <kl...@apache.org>.
Are you sure it's not necessary to do a clean build when switching between
different branches? Especially branches that are far enough apart in
revisions that their gradle build files are different? Sometimes two
branches, such as for two different releases, are significantly different
in the gradle files.

On Tue, Mar 26, 2019 at 2:49 PM Patrick Rhomberg <pr...@pivotal.io>
wrote:

> As Dan mentioned, the few times I've seen this has been a result of running
> clean in the same build set as spotless.  While that "shouldn't" be an
> issue, it seems to be the underlying cause.
>
> I encourage you to not clean every time you build.  We've done a lot of
> work lately to improve the correctness of our build, so incrementalization
> and task caching should (no scare quotes this time) be the go-to, rather
> than always cleaning before you build.  If you have a specific reason you
> think you need to clean before building, that's something we should fix.
> As the common developer use-case, we have ./gradlew dev to do both compile
> / assembly and spotlessApply.
>
> As a side note, both of your configurations could also be achieved via
> command-line arguments --no-daemon and --no-parallel respectively, if you
> don't want that behavior to be the default as specified in your local
> ~/.gradle/gradle.properties.
>
> On Tue, Mar 26, 2019 at 11:46 AM Kirk Lund <kl...@apache.org> wrote:
>
> > I actually have two lines in my gradle.properties. The combo seems to
> make
> > spotless behave when it gets into the broken state I mentioned before:
> >
> > org.gradle.daemon=false
> > org.gradle.parallel=false
> >
> > This does make it slower but slower is better than broken.
> >
> > On Tue, Mar 26, 2019 at 11:38 AM Kirk Lund <kl...@apache.org> wrote:
> >
> > > I just had this occur again. And I found another solution, albeit not a
> > > great one, but if you disable org.gradle.daemon that also clears up
> this
> > > problem. You can add this to ~/.gradle/gradle.properties:
> > >
> > > org.gradle.daemon=false
> > >
> > > Just to clarify, I'm on a Mac using gradlew in geode (I don't have my
> own
> > > version of gradle installed) and oracle jdk1.8.0_202.
> > >
> > > On Tue, Mar 26, 2019 at 10:48 AM Kirk Lund <kl...@apache.org> wrote:
> > >
> > >> Few more details that might help others...
> > >>
> > >> Each Geode module fails in the same way but obviously on a different
> > >> .java file, and I have not altered these .java files -- they do not
> > appear
> > >> to have any format issues involving imports.
> > >>
> > >> Once gradle is in this state, switching branches from a feature branch
> > to
> > >> develop (which has no local changes) does not clear it up either.
> > >>
> > >> > Task :geode-junit:spotlessJava FAILED
> > >> Step 'removeUnusedImports' found problem in
> > >>
> >
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> > >> null
> > >> java.lang.reflect.InvocationTargetException
> > >>
> > >> On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:
> > >>
> > >>> Intermittent build error caused by spotlessJava. My checkout of Geode
> > >>> intermittently gets into a state that then fails to build. I've been
> > seeing
> > >>> this come and go for the last month or two. I'm not sure what puts it
> > into
> > >>> this state but executing:
> > >>>
> > >>> $ ./gradlew clean build -x test
> > >>>
> > >>> ...will repeatedly fail in junit:spotlessJava with a
> > >>> java.lang.reflect.InvocationTargetException and a root cause of
> > >>> ava.lang.NoClassDefFoundError:
> > >>> org/openjdk/tools/javac/comp/InferenceContext.
> > >>>
> > >>> Stopping the gradle daemon(s) does not clear the problem up. Cleaning
> > >>> does not clear it up. Changing JDK version does not clear it up. But
> I
> > just
> > >>> discovered this morning that if I attempt to execute spotless
> directly
> > that
> > >>> finally clears it up:
> > >>>
> > >>> $ ./gradlew spotlessApply
> > >>> or
> > >>> $ ./gradlew spotlessCheck
> > >>>
> > >>> After either spotlessApply or spotlessCheck, the build will stop
> > failing
> > >>> when I execute:
> > >>>
> > >>> $ ./gradlew clean build -x test
> > >>>
> > >>> The stack thrown by spotlessJava and printed by gradle when it's
> stuck
> > >>> in this state is below...
> > >>>
> > >>> > Task :geode-junit:spotlessJava FAILED
> > >>> Step 'removeUnusedImports' found problem in
> > >>>
> >
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> > >>> null
> > >>> java.lang.reflect.InvocationTargetException
> > >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > >>>         at
> > >>>
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > >>>         at
> > >>>
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> > >>>         at
> > >>>
> >
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
> > >>>         at
> > >>>
> >
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
> > >>>         at
> > >>>
> > com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
> > >>>         at
> com.diffplug.spotless.Formatter.compute(Formatter.java:230)
> > >>>         at
> com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
> > >>>         at
> > >>>
> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
> > >>>         at
> > >>>
> >
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
> > >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > >>>         at
> > >>>
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > >>>         at
> > >>>
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> > >>>         at
> > >>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
> > >>>         at java.util.Optional.orElseGet(Optional.java:267)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
> > >>>         at java.util.Optional.map(Optional.java:215)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
> > >>>         at
> > >>>
> >
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
> > >>>         at
> > >>>
> >
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
> > >>>         at
> > >>>
> >
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
> > >>>         at
> > >>>
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
> > >>>         at
> > >>>
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
> > >>>         at
> > >>>
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
> > >>>         at
> > >>>
> >
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
> > >>>         at
> > >>>
> >
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
> > >>>         at
> > >>>
> >
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
> > >>>         at
> > >>>
> >
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
> > >>>         at
> > >>>
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > >>>         at
> > >>>
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > >>>         at
> > >>>
> >
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
> > >>>         at java.lang.Thread.run(Thread.java:748)
> > >>> Caused by: java.lang.NoClassDefFoundError:
> > >>> org/openjdk/tools/javac/comp/InferenceContext
> > >>>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
> > >>>         at
> org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
> > >>>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
> > >>>         at
> org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
> > >>>         at
> > >>>
> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
> > >>>         at
> > >>>
> > org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
> > >>>         at
> > org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
> > >>>         at
> > >>> org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
> > >>>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
> > >>>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
> > >>>         at
> > >>> org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
> > >>>         at
> > >>> org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
> > >>>         at
> > >>> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
> > >>>         at
> > >>>
> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
> > >>>         at
> > >>> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
> > >>>         at
> > >>>
> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
> > >>>         at
> org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
> > >>>         at
> org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
> > >>>         at
> > >>> org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
> > >>>         at
> > >>> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
> > >>>         at
> > >>>
> >
> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
> > >>>         at
> > >>>
> >
> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
> > >>>         at
> > >>>
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
> > >>>         at
> > >>>
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
> > >>>         at
> > >>>
> >
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
> > >>>         ... 97 more
> > >>>
> > >>
> >
>

Re: Weird intermittent build error caused by spotlessJava

Posted by Patrick Rhomberg <pr...@pivotal.io>.
As Dan mentioned, the few times I've seen this has been a result of running
clean in the same build set as spotless.  While that "shouldn't" be an
issue, it seems to be the underlying cause.

I encourage you to not clean every time you build.  We've done a lot of
work lately to improve the correctness of our build, so incrementalization
and task caching should (no scare quotes this time) be the go-to, rather
than always cleaning before you build.  If you have a specific reason you
think you need to clean before building, that's something we should fix.
As the common developer use-case, we have ./gradlew dev to do both compile
/ assembly and spotlessApply.

As a side note, both of your configurations could also be achieved via
command-line arguments --no-daemon and --no-parallel respectively, if you
don't want that behavior to be the default as specified in your local
~/.gradle/gradle.properties.

On Tue, Mar 26, 2019 at 11:46 AM Kirk Lund <kl...@apache.org> wrote:

> I actually have two lines in my gradle.properties. The combo seems to make
> spotless behave when it gets into the broken state I mentioned before:
>
> org.gradle.daemon=false
> org.gradle.parallel=false
>
> This does make it slower but slower is better than broken.
>
> On Tue, Mar 26, 2019 at 11:38 AM Kirk Lund <kl...@apache.org> wrote:
>
> > I just had this occur again. And I found another solution, albeit not a
> > great one, but if you disable org.gradle.daemon that also clears up this
> > problem. You can add this to ~/.gradle/gradle.properties:
> >
> > org.gradle.daemon=false
> >
> > Just to clarify, I'm on a Mac using gradlew in geode (I don't have my own
> > version of gradle installed) and oracle jdk1.8.0_202.
> >
> > On Tue, Mar 26, 2019 at 10:48 AM Kirk Lund <kl...@apache.org> wrote:
> >
> >> Few more details that might help others...
> >>
> >> Each Geode module fails in the same way but obviously on a different
> >> .java file, and I have not altered these .java files -- they do not
> appear
> >> to have any format issues involving imports.
> >>
> >> Once gradle is in this state, switching branches from a feature branch
> to
> >> develop (which has no local changes) does not clear it up either.
> >>
> >> > Task :geode-junit:spotlessJava FAILED
> >> Step 'removeUnusedImports' found problem in
> >>
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> >> null
> >> java.lang.reflect.InvocationTargetException
> >>
> >> On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:
> >>
> >>> Intermittent build error caused by spotlessJava. My checkout of Geode
> >>> intermittently gets into a state that then fails to build. I've been
> seeing
> >>> this come and go for the last month or two. I'm not sure what puts it
> into
> >>> this state but executing:
> >>>
> >>> $ ./gradlew clean build -x test
> >>>
> >>> ...will repeatedly fail in junit:spotlessJava with a
> >>> java.lang.reflect.InvocationTargetException and a root cause of
> >>> ava.lang.NoClassDefFoundError:
> >>> org/openjdk/tools/javac/comp/InferenceContext.
> >>>
> >>> Stopping the gradle daemon(s) does not clear the problem up. Cleaning
> >>> does not clear it up. Changing JDK version does not clear it up. But I
> just
> >>> discovered this morning that if I attempt to execute spotless directly
> that
> >>> finally clears it up:
> >>>
> >>> $ ./gradlew spotlessApply
> >>> or
> >>> $ ./gradlew spotlessCheck
> >>>
> >>> After either spotlessApply or spotlessCheck, the build will stop
> failing
> >>> when I execute:
> >>>
> >>> $ ./gradlew clean build -x test
> >>>
> >>> The stack thrown by spotlessJava and printed by gradle when it's stuck
> >>> in this state is below...
> >>>
> >>> > Task :geode-junit:spotlessJava FAILED
> >>> Step 'removeUnusedImports' found problem in
> >>>
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> >>> null
> >>> java.lang.reflect.InvocationTargetException
> >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>         at
> >>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> >>>         at
> >>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> >>>         at
> >>>
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
> >>>         at
> >>>
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
> >>>         at
> >>>
> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
> >>>         at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
> >>>         at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
> >>>         at
> >>> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
> >>>         at
> >>>
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
> >>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>>         at
> >>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> >>>         at
> >>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>         at java.lang.reflect.Method.invoke(Method.java:498)
> >>>         at
> >>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
> >>>         at
> >>>
> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
> >>>         at
> >>>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
> >>>         at
> >>>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
> >>>         at
> >>>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
> >>>         at java.util.Optional.orElseGet(Optional.java:267)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
> >>>         at java.util.Optional.map(Optional.java:215)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
> >>>         at
> >>>
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
> >>>         at
> >>>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
> >>>         at
> >>>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
> >>>         at
> >>>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
> >>>         at
> >>>
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
> >>>         at
> >>>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
> >>>         at
> >>>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
> >>>         at
> >>>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
> >>>         at
> >>>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
> >>>         at
> >>>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
> >>>         at
> >>>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
> >>>         at
> >>>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
> >>>         at
> >>>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
> >>>         at
> >>>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
> >>>         at
> >>>
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
> >>>         at
> >>>
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
> >>>         at
> >>>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> >>>         at
> >>>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> >>>         at
> >>>
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
> >>>         at java.lang.Thread.run(Thread.java:748)
> >>> Caused by: java.lang.NoClassDefFoundError:
> >>> org/openjdk/tools/javac/comp/InferenceContext
> >>>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
> >>>         at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
> >>>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
> >>>         at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
> >>>         at
> >>> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
> >>>         at
> >>>
> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
> >>>         at
> org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
> >>>         at
> >>> org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
> >>>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
> >>>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
> >>>         at
> >>> org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
> >>>         at
> >>> org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
> >>>         at
> >>> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
> >>>         at
> >>> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
> >>>         at
> >>> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
> >>>         at
> >>> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
> >>>         at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
> >>>         at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
> >>>         at
> >>> org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
> >>>         at
> >>> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
> >>>         at
> >>>
> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
> >>>         at
> >>>
> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
> >>>         at
> >>>
> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
> >>>         at
> >>>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
> >>>         at
> >>>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
> >>>         ... 97 more
> >>>
> >>
>

Re: Weird intermittent build error caused by spotlessJava

Posted by Kirk Lund <kl...@apache.org>.
I actually have two lines in my gradle.properties. The combo seems to make
spotless behave when it gets into the broken state I mentioned before:

org.gradle.daemon=false
org.gradle.parallel=false

This does make it slower but slower is better than broken.

On Tue, Mar 26, 2019 at 11:38 AM Kirk Lund <kl...@apache.org> wrote:

> I just had this occur again. And I found another solution, albeit not a
> great one, but if you disable org.gradle.daemon that also clears up this
> problem. You can add this to ~/.gradle/gradle.properties:
>
> org.gradle.daemon=false
>
> Just to clarify, I'm on a Mac using gradlew in geode (I don't have my own
> version of gradle installed) and oracle jdk1.8.0_202.
>
> On Tue, Mar 26, 2019 at 10:48 AM Kirk Lund <kl...@apache.org> wrote:
>
>> Few more details that might help others...
>>
>> Each Geode module fails in the same way but obviously on a different
>> .java file, and I have not altered these .java files -- they do not appear
>> to have any format issues involving imports.
>>
>> Once gradle is in this state, switching branches from a feature branch to
>> develop (which has no local changes) does not clear it up either.
>>
>> > Task :geode-junit:spotlessJava FAILED
>> Step 'removeUnusedImports' found problem in
>> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
>> null
>> java.lang.reflect.InvocationTargetException
>>
>> On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:
>>
>>> Intermittent build error caused by spotlessJava. My checkout of Geode
>>> intermittently gets into a state that then fails to build. I've been seeing
>>> this come and go for the last month or two. I'm not sure what puts it into
>>> this state but executing:
>>>
>>> $ ./gradlew clean build -x test
>>>
>>> ...will repeatedly fail in junit:spotlessJava with a
>>> java.lang.reflect.InvocationTargetException and a root cause of
>>> ava.lang.NoClassDefFoundError:
>>> org/openjdk/tools/javac/comp/InferenceContext.
>>>
>>> Stopping the gradle daemon(s) does not clear the problem up. Cleaning
>>> does not clear it up. Changing JDK version does not clear it up. But I just
>>> discovered this morning that if I attempt to execute spotless directly that
>>> finally clears it up:
>>>
>>> $ ./gradlew spotlessApply
>>> or
>>> $ ./gradlew spotlessCheck
>>>
>>> After either spotlessApply or spotlessCheck, the build will stop failing
>>> when I execute:
>>>
>>> $ ./gradlew clean build -x test
>>>
>>> The stack thrown by spotlessJava and printed by gradle when it's stuck
>>> in this state is below...
>>>
>>> > Task :geode-junit:spotlessJava FAILED
>>> Step 'removeUnusedImports' found problem in
>>> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
>>> null
>>> java.lang.reflect.InvocationTargetException
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>         at
>>> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
>>>         at
>>> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
>>>         at
>>> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
>>>         at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
>>>         at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
>>>         at
>>> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
>>>         at
>>> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>>         at
>>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
>>>         at
>>> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
>>>         at
>>> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
>>>         at
>>> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
>>>         at
>>> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
>>>         at
>>> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
>>>         at
>>> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
>>>         at
>>> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
>>>         at java.util.Optional.orElseGet(Optional.java:267)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
>>>         at
>>> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
>>>         at
>>> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
>>>         at
>>> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
>>>         at
>>> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
>>>         at java.util.Optional.map(Optional.java:215)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
>>>         at
>>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
>>>         at
>>> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
>>>         at
>>> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
>>>         at
>>> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
>>>         at
>>> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
>>>         at
>>> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
>>>         at
>>> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
>>>         at
>>> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
>>>         at
>>> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
>>>         at
>>> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
>>>         at
>>> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
>>>         at
>>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
>>>         at
>>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
>>>         at
>>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>>>         at
>>> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
>>>         at
>>> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
>>>         at
>>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
>>>         at
>>> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
>>>         at
>>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
>>>         at
>>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
>>>         at
>>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
>>>         at
>>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
>>>         at
>>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
>>>         at
>>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
>>>         at
>>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
>>>         at
>>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
>>>         at
>>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
>>>         at
>>> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>>>         at
>>> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>>         at
>>> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>>>         at java.lang.Thread.run(Thread.java:748)
>>> Caused by: java.lang.NoClassDefFoundError:
>>> org/openjdk/tools/javac/comp/InferenceContext
>>>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
>>>         at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
>>>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
>>>         at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
>>>         at
>>> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
>>>         at
>>> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
>>>         at org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
>>>         at
>>> org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
>>>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
>>>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
>>>         at
>>> org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
>>>         at
>>> org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
>>>         at
>>> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
>>>         at
>>> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
>>>         at
>>> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
>>>         at
>>> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
>>>         at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
>>>         at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
>>>         at
>>> org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
>>>         at
>>> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
>>>         at
>>> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
>>>         at
>>> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
>>>         at
>>> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
>>>         at
>>> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
>>>         at
>>> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
>>>         ... 97 more
>>>
>>

Re: Weird intermittent build error caused by spotlessJava

Posted by Kirk Lund <kl...@apache.org>.
I just had this occur again. And I found another solution, albeit not a
great one, but if you disable org.gradle.daemon that also clears up this
problem. You can add this to ~/.gradle/gradle.properties:

org.gradle.daemon=false

Just to clarify, I'm on a Mac using gradlew in geode (I don't have my own
version of gradle installed) and oracle jdk1.8.0_202.

On Tue, Mar 26, 2019 at 10:48 AM Kirk Lund <kl...@apache.org> wrote:

> Few more details that might help others...
>
> Each Geode module fails in the same way but obviously on a different .java
> file, and I have not altered these .java files -- they do not appear to
> have any format issues involving imports.
>
> Once gradle is in this state, switching branches from a feature branch to
> develop (which has no local changes) does not clear it up either.
>
> > Task :geode-junit:spotlessJava FAILED
> Step 'removeUnusedImports' found problem in
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> null
> java.lang.reflect.InvocationTargetException
>
> On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:
>
>> Intermittent build error caused by spotlessJava. My checkout of Geode
>> intermittently gets into a state that then fails to build. I've been seeing
>> this come and go for the last month or two. I'm not sure what puts it into
>> this state but executing:
>>
>> $ ./gradlew clean build -x test
>>
>> ...will repeatedly fail in junit:spotlessJava with a
>> java.lang.reflect.InvocationTargetException and a root cause of
>> ava.lang.NoClassDefFoundError:
>> org/openjdk/tools/javac/comp/InferenceContext.
>>
>> Stopping the gradle daemon(s) does not clear the problem up. Cleaning
>> does not clear it up. Changing JDK version does not clear it up. But I just
>> discovered this morning that if I attempt to execute spotless directly that
>> finally clears it up:
>>
>> $ ./gradlew spotlessApply
>> or
>> $ ./gradlew spotlessCheck
>>
>> After either spotlessApply or spotlessCheck, the build will stop failing
>> when I execute:
>>
>> $ ./gradlew clean build -x test
>>
>> The stack thrown by spotlessJava and printed by gradle when it's stuck in
>> this state is below...
>>
>> > Task :geode-junit:spotlessJava FAILED
>> Step 'removeUnusedImports' found problem in
>> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
>> null
>> java.lang.reflect.InvocationTargetException
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>         at
>> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
>>         at
>> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
>>         at
>> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
>>         at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
>>         at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
>>         at
>> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
>>         at
>> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:498)
>>         at
>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
>>         at
>> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
>>         at
>> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
>>         at
>> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
>>         at
>> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
>>         at
>> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
>>         at
>> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
>>         at
>> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
>>         at
>> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
>>         at
>> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
>>         at
>> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
>>         at
>> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
>>         at
>> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
>>         at
>> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
>>         at
>> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
>>         at java.util.Optional.orElseGet(Optional.java:267)
>>         at
>> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
>>         at
>> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
>>         at
>> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
>>         at
>> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
>>         at
>> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
>>         at
>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
>>         at
>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
>>         at java.util.Optional.map(Optional.java:215)
>>         at
>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
>>         at
>> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
>>         at
>> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
>>         at
>> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
>>         at
>> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
>>         at
>> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
>>         at
>> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
>>         at
>> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
>>         at
>> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
>>         at
>> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
>>         at
>> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
>>         at
>> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
>>         at
>> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
>>         at
>> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
>>         at
>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
>>         at
>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
>>         at
>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>>         at
>> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
>>         at
>> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
>>         at
>> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
>>         at
>> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
>>         at
>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
>>         at
>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
>>         at
>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
>>         at
>> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
>>         at
>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
>>         at
>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
>>         at
>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
>>         at
>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
>>         at
>> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
>>         at
>> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>>         at
>> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>>         at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>>         at
>> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>>         at java.lang.Thread.run(Thread.java:748)
>> Caused by: java.lang.NoClassDefFoundError:
>> org/openjdk/tools/javac/comp/InferenceContext
>>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
>>         at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
>>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
>>         at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
>>         at
>> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
>>         at
>> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
>>         at org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
>>         at org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
>>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
>>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
>>         at org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
>>         at
>> org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
>>         at
>> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
>>         at
>> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
>>         at
>> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
>>         at
>> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
>>         at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
>>         at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
>>         at
>> org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
>>         at
>> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
>>         at
>> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
>>         at
>> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
>>         at
>> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
>>         at
>> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
>>         at
>> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
>>         ... 97 more
>>
>

Re: Weird intermittent build error caused by spotlessJava

Posted by Kirk Lund <kl...@apache.org>.
Few more details that might help others...

Each Geode module fails in the same way but obviously on a different .java
file, and I have not altered these .java files -- they do not appear to
have any format issues involving imports.

Once gradle is in this state, switching branches from a feature branch to
develop (which has no local changes) does not clear it up either.

> Task :geode-junit:spotlessJava FAILED
Step 'removeUnusedImports' found problem in
'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
null
java.lang.reflect.InvocationTargetException

On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:

> Intermittent build error caused by spotlessJava. My checkout of Geode
> intermittently gets into a state that then fails to build. I've been seeing
> this come and go for the last month or two. I'm not sure what puts it into
> this state but executing:
>
> $ ./gradlew clean build -x test
>
> ...will repeatedly fail in junit:spotlessJava with a
> java.lang.reflect.InvocationTargetException and a root cause of
> ava.lang.NoClassDefFoundError:
> org/openjdk/tools/javac/comp/InferenceContext.
>
> Stopping the gradle daemon(s) does not clear the problem up. Cleaning does
> not clear it up. Changing JDK version does not clear it up. But I just
> discovered this morning that if I attempt to execute spotless directly that
> finally clears it up:
>
> $ ./gradlew spotlessApply
> or
> $ ./gradlew spotlessCheck
>
> After either spotlessApply or spotlessCheck, the build will stop failing
> when I execute:
>
> $ ./gradlew clean build -x test
>
> The stack thrown by spotlessJava and printed by gradle when it's stuck in
> this state is below...
>
> > Task :geode-junit:spotlessJava FAILED
> Step 'removeUnusedImports' found problem in
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> null
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
>         at
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
>         at
> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
>         at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
>         at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
>         at
> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
>         at
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
>         at
> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
>         at
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
>         at
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
>         at
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
>         at
> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
>         at
> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
>         at
> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
>         at
> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
>         at
> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
>         at
> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
>         at
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
>         at
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
>         at
> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
>         at
> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
>         at java.util.Optional.orElseGet(Optional.java:267)
>         at
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
>         at
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
>         at
> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
>         at
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
>         at
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
>         at
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
>         at
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
>         at java.util.Optional.map(Optional.java:215)
>         at
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
>         at
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
>         at
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
>         at
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
>         at
> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
>         at
> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
>         at
> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
>         at
> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
>         at
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
>         at
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
>         at
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
>         at
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
>         at
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
>         at
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
>         at
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
>         at
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
>         at
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
>         at
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
>         at
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
>         at
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
>         at
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
>         at
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
>         at
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>         at
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
>         at
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
>         at
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
>         at
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
>         at
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
>         at
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
>         at
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
>         at
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
>         at
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
>         at
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
>         at
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
>         at
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
>         at
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
>         at
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>         at
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NoClassDefFoundError:
> org/openjdk/tools/javac/comp/InferenceContext
>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
>         at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
>         at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
>         at
> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
>         at
> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
>         at org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
>         at org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
>         at org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
>         at org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
>         at
> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
>         at
> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
>         at
> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
>         at
> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
>         at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
>         at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
>         at org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
>         at
> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
>         at
> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
>         at
> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
>         at
> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
>         at
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
>         at
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
>         ... 97 more
>

Re: Weird intermittent build error caused by spotlessJava

Posted by Dan Smith <ds...@pivotal.io>.
I have had several issues running clean in combination with other gradle
commands - I think because of our parallel build. Maybe do this?

$ ./gradlew clean; ./gradlew build -xtest

On Tue, Mar 26, 2019 at 10:43 AM Kirk Lund <kl...@apache.org> wrote:

> Intermittent build error caused by spotlessJava. My checkout of Geode
> intermittently gets into a state that then fails to build. I've been seeing
> this come and go for the last month or two. I'm not sure what puts it into
> this state but executing:
>
> $ ./gradlew clean build -x test
>
> ...will repeatedly fail in junit:spotlessJava with a
> java.lang.reflect.InvocationTargetException and a root cause of
> ava.lang.NoClassDefFoundError:
> org/openjdk/tools/javac/comp/InferenceContext.
>
> Stopping the gradle daemon(s) does not clear the problem up. Cleaning does
> not clear it up. Changing JDK version does not clear it up. But I just
> discovered this morning that if I attempt to execute spotless directly that
> finally clears it up:
>
> $ ./gradlew spotlessApply
> or
> $ ./gradlew spotlessCheck
>
> After either spotlessApply or spotlessCheck, the build will stop failing
> when I execute:
>
> $ ./gradlew clean build -x test
>
> The stack thrown by spotlessJava and printed by gradle when it's stuck in
> this state is below...
>
> > Task :geode-junit:spotlessJava FAILED
> Step 'removeUnusedImports' found problem in
>
> 'geode-junit/src/main/java/org/apache/geode/test/junit/rules/gfsh/DebuggableCommand.java':
> null
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
>
> com.diffplug.spotless.java.GoogleJavaFormatStep$State.lambda$createRemoveUnusedImportsOnly$1(GoogleJavaFormatStep.java:153)
>         at
>
> com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:78)
>         at
> com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:76)
>         at com.diffplug.spotless.Formatter.compute(Formatter.java:230)
>         at com.diffplug.spotless.Formatter.isClean(Formatter.java:167)
>         at
> com.diffplug.gradle.spotless.SpotlessTask.check(SpotlessTask.java:263)
>         at
>
> com.diffplug.gradle.spotless.SpotlessTask.performAction(SpotlessTask.java:205)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at
> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
>         at
>
> org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:73)
>         at
>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
>         at
>
> org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$4.run(ExecuteActionsTaskExecuter.java:338)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
>         at
>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:327)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:312)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:75)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:158)
>         at
>
> org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:46)
>         at
>
> org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
>         at
>
> org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
>         at
>
> org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
>         at
>
> org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
>         at
>
> org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:49)
>         at
>
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:42)
>         at
>
> org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:28)
>         at
>
> org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:133)
>         at
>
> org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$5(CacheStep.java:83)
>         at java.util.Optional.orElseGet(Optional.java:267)
>         at
>
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
>         at
>
> org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:37)
>         at
>
> org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
>         at
>
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
>         at
>
> org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
>         at
>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:95)
>         at
>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:88)
>         at java.util.Optional.map(Optional.java:215)
>         at
>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
>         at
>
> org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
>         at
>
> org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
>         at
>
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:109)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveIncrementalChangesTaskExecuter.execute(ResolveIncrementalChangesTaskExecuter.java:84)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
>         at
>
> org.gradle.api.internal.tasks.execution.FinishSnapshotTaskInputsBuildOperationTaskExecuter.execute(FinishSnapshotTaskInputsBuildOperationTaskExecuter.java:51)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:102)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionStateTaskExecuter.execute(ResolveBeforeExecutionStateTaskExecuter.java:74)
>         at
>
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
>         at
>
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:109)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
>         at
>
> org.gradle.api.internal.tasks.execution.StartSnapshotTaskInputsBuildOperationTaskExecuter.execute(StartSnapshotTaskInputsBuildOperationTaskExecuter.java:52)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
>         at
>
> org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
>         at
>
> org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
>         at
>
> org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:94)
>         at
>
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
>         at
>
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
>         at
>
> org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
>         at
>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:63)
>         at
>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
>         at
>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:46)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
>         at
>
> org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
>         at
>
> org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
>         at
>
> org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
>         at
>
> org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
>         at
>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
>         at
>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
>         at
>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
>         at
>
> org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
>         at
>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
>         at
>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
>         at
>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
>         at
>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
>         at
>
> org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
>         at
>
> org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
>         at
>
> org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
>         at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at
>
> org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
>         at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NoClassDefFoundError:
> org/openjdk/tools/javac/comp/InferenceContext
>         at org.openjdk.tools.javac.comp.Infer.<init>(Infer.java:121)
>         at org.openjdk.tools.javac.comp.Infer.instance(Infer.java:101)
>         at org.openjdk.tools.javac.comp.Check.<init>(Check.java:120)
>         at org.openjdk.tools.javac.comp.Check.instance(Check.java:104)
>         at
> org.openjdk.tools.javac.comp.DeferredAttr.<init>(DeferredAttr.java:107)
>         at
> org.openjdk.tools.javac.comp.DeferredAttr.instance(DeferredAttr.java:99)
>         at org.openjdk.tools.javac.comp.Resolve.<init>(Resolve.java:123)
>         at org.openjdk.tools.javac.comp.Resolve.instance(Resolve.java:159)
>         at org.openjdk.tools.javac.comp.Attr.<init>(Attr.java:129)
>         at org.openjdk.tools.javac.comp.Attr.instance(Attr.java:119)
>         at org.openjdk.tools.javac.comp.Annotate.<init>(Annotate.java:102)
>         at org.openjdk.tools.javac.comp.Annotate.instance(Annotate.java:77)
>         at
> org.openjdk.tools.javac.jvm.ClassReader.<init>(ClassReader.java:232)
>         at
> org.openjdk.tools.javac.jvm.ClassReader.instance(ClassReader.java:225)
>         at
> org.openjdk.tools.javac.code.ClassFinder.<init>(ClassFinder.java:183)
>         at
> org.openjdk.tools.javac.code.ClassFinder.instance(ClassFinder.java:176)
>         at org.openjdk.tools.javac.code.Symtab.<init>(Symtab.java:453)
>         at org.openjdk.tools.javac.code.Symtab.instance(Symtab.java:88)
>         at org.openjdk.tools.javac.tree.TreeMaker.<init>(TreeMaker.java:87)
>         at
> org.openjdk.tools.javac.tree.TreeMaker.instance(TreeMaker.java:60)
>         at
> org.openjdk.tools.javac.parser.ParserFactory.<init>(ParserFactory.java:72)
>         at
>
> org.openjdk.tools.javac.parser.ParserFactory.instance(ParserFactory.java:54)
>         at
>
> com.google.googlejavaformat.java.RemoveUnusedImports.parse(RemoveUnusedImports.java:243)
>         at
>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:212)
>         at
>
> com.google.googlejavaformat.java.RemoveUnusedImports.removeUnusedImports(RemoveUnusedImports.java:205)
>         ... 97 more
>