nebula-plugins / gradle-lint-plugin

A pluggable and configurable linter tool for identifying and reporting on patterns of misuse or deprecations in Gradle scripts.
Apache License 2.0
771 stars 89 forks source link

Error from 'unused-dependency' rule on source [null] #351

Closed rhoughton-pivot closed 3 years ago

rhoughton-pivot commented 3 years ago

I am trying to re-enable nebula.lint on Apache Geode, and am running into this issue. Head of the stack trace: > Task :fixGradleLint FAILED Error from [com.netflix.nebula.lint.rule.GradleLintRule$1] processing source file [null] org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method startsWith() for arguments [test] on configuration ':geode-core:antlr' of type org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.

Issue can be reproduced from the HEAD of develop on github.com/apache/geode, running ./gradlew fixGradleLine or ./gradlew lintGradle

Using:

rhoughton-pivot commented 3 years ago

Full scan available here

rhoughton-pivot commented 3 years ago

I think this fixes it. https://github.com/nebula-plugins/gradle-lint-plugin/pull/352

chali commented 3 years ago

Version 17.2.2 should have the fix. Let us know if that helps

danic-wd commented 3 years ago

That gets past the original problem but it throws an exception on line 300 of the same file. Issue is the antlr gradle plugin introduces a configuration "antlr" with no source set so sourceSetOutput returns null.

> Task :autoLintGradle FAILED
Error from [com.netflix.nebula.lint.rule.GradleLintRule$1] processing source file [null]
java.lang.NullPointerException: Cannot get property 'files' on null object
    at com.netflix.nebula.lint.rule.dependency.DependencyService.memoizedMethodPriv$classReferencesString(DependencyService.groovy:300)
    at com.netflix.nebula.lint.rule.dependency.DependencyService$_closure6.doCall(DependencyService.groovy)
    at com.netflix.nebula.lint.rule.dependency.DependencyService.classReferences(DependencyService.groovy)
    at com.netflix.nebula.lint.rule.dependency.DependencyService.memoizedMethodPriv$unusedDependenciesStringString(DependencyService.groovy:457)
    at com.netflix.nebula.lint.rule.dependency.DependencyService$_closure11.doCall(DependencyService.groovy)
    at com.netflix.nebula.lint.rule.dependency.DependencyService.unusedDependencies(DependencyService.groovy)
    at com.netflix.nebula.lint.rule.dependency.DependencyService$unusedDependencies$10.call(Unknown Source)
    at com.netflix.nebula.lint.rule.dependency.UnusedDependencyRule.visitGradleDependency(UnusedDependencyRule.groovy:61)
    at com.netflix.nebula.lint.rule.GradleLintRule.this$dist$invoke$2(GradleLintRule.groovy)
    at com.netflix.nebula.lint.rule.GradleLintRule$1.methodMissing(GradleLintRule.groovy)
    at com.netflix.nebula.lint.rule.GradleLintRule$1.this$dist$invoke$3(GradleLintRule.groovy)
    at com.netflix.nebula.lint.rule.GradleLintRule$1$1.methodMissing(GradleLintRule.groovy)
    at com.netflix.nebula.lint.rule.GradleLintRule$1$1.visitMethodCallInDependencies(GradleLintRule.groovy:483)
    at com.netflix.nebula.lint.rule.GradleLintRule$1$1.visitMethodCallExpression(GradleLintRule.groovy:262)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor$_visitMethodCallExpression_closure31.doCall(CompositeGroovyAstVisitor.groovy:225)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitMethodCallExpression(CompositeGroovyAstVisitor.groovy:225)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitExpressionStatement(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitExpressionStatement(CompositeGroovyAstVisitor.groovy:166)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitBlockStatement(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitBlockStatement(CompositeGroovyAstVisitor.groovy:130)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$2$visitClosureExpression(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitClosureExpression(CompositeGroovyAstVisitor.groovy:288)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor$_visitListOfExpressions_closure63.doCall(CompositeGroovyAstVisitor.groovy:419)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitListOfExpressions(CompositeGroovyAstVisitor.groovy:418)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$2$visitTupleExpression(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitTupleExpression(CompositeGroovyAstVisitor.groovy:294)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$2$visitArgumentlistExpression(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitArgumentlistExpression(CompositeGroovyAstVisitor.groovy:427)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$2$visitMethodCallExpression(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitMethodCallExpression(CompositeGroovyAstVisitor.groovy:227)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitExpressionStatement(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitExpressionStatement(CompositeGroovyAstVisitor.groovy:166)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitBlockStatement(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitBlockStatement(CompositeGroovyAstVisitor.groovy:130)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitClassCodeContainer(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitClassCodeContainer(CompositeGroovyAstVisitor.groovy:77)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitConstructorOrMethod(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitConstructorOrMethod(CompositeGroovyAstVisitor.groovy:88)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitMethod(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitMethod(CompositeGroovyAstVisitor.groovy:100)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.super$3$visitClass(CompositeGroovyAstVisitor.groovy)
    at com.netflix.nebula.lint.rule.CompositeGroovyAstVisitor.visitClass(CompositeGroovyAstVisitor.groovy:46)
    at com.netflix.nebula.lint.org.codenarc.rule.AbstractAstVisitorRule.applyTo(AbstractAstVisitorRule.java:97)
    at com.netflix.nebula.lint.org.codenarc.rule.AbstractRule.applyTo(AbstractRule.java:143)
    at com.netflix.nebula.lint.org.codenarc.rule.Rule$applyTo$2.call(Unknown Source)
    at com.netflix.nebula.lint.rule.GradleLintRule.applyTo(GradleLintRule.groovy:199)
    at com.netflix.nebula.lint.org.codenarc.rule.Rule$applyTo$0.call(Unknown Source)
    at com.netflix.nebula.lint.org.codenarc.analyzer.AbstractSourceAnalyzer$_collectViolations_closure3.doCall(AbstractSourceAnalyzer.groovy:46)
    at com.netflix.nebula.lint.org.codenarc.analyzer.AbstractSourceAnalyzer.measureRuleProcessingTime(AbstractSourceAnalyzer.groovy:58)
    at com.netflix.nebula.lint.org.codenarc.analyzer.AbstractSourceAnalyzer.collectViolations(AbstractSourceAnalyzer.groovy:44)
    at com.netflix.nebula.lint.plugin.LintService$ReportableAnalyzer.analyze(LintService.groovy:58)
    at com.netflix.nebula.lint.plugin.LintService$ReportableAnalyzer$analyze.call(Unknown Source)
    at com.netflix.nebula.lint.plugin.LintService$_lint_closure5.doCall(LintService.groovy:129)
    at com.netflix.nebula.lint.plugin.LintService.lint(LintService.groovy:118)
    at com.netflix.nebula.lint.plugin.LintService$lint.call(Unknown Source)
    at com.netflix.nebula.lint.plugin.LintGradleTask.lint(LintGradleTask.groovy:47)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:502)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
    at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:487)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:470)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:106)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:271)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:249)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
    at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:50)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:58)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:39)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:180)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:75)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:105)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:98)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:53)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:85)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:42)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:92)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:73)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:47)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:92)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:92)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:33)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:284)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    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:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
    at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:402)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:389)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:382)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:368)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
rhoughton-pivot commented 3 years ago

@danic-wd I see the same stack trace for Apache Geode.

@chali Would you like a new issue to be filed for the tag-along bug about ANTLR ?

danic-wd commented 3 years ago

Basic build.gradle to reproduce:

plugins {
    id 'java'
    id 'antlr'
    id 'nebula.lint' version '17.2.2'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    antlr 'org.antlr:antlr4:4.9.2'
    implementation 'org.antlr:antlr4-runtime:4.9.2'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.0'
}

gradleLint {
    rules = ['unused-dependency']
}

test {
    useJUnitPlatform()
}
rhoughton-pivot commented 3 years ago

@danic-wd I got https://github.com/nebula-plugins/gradle-lint-plugin/pull/356 committed. Hope it works for you, too!

danic-wd commented 3 years ago

@rhoughton-pivot It works. Thanks for doing this.

PS: I see warning :

unused-dependency                  this dependency is unused and can be removed
my_project/build.gradle:10
antlr "org.antlr:antlr4:${antlr_version}"

which is odd as ANTLR is most definitely being used. I need to look into it.