Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check fails with java.lang.NoSuchMethodError: 'void org.apache.commons.io.IOUtils.closeQuietly(java.io.Closeable[])' #6373

Closed
michalszelagsonos opened this issue Jan 8, 2024 · 3 comments · Fixed by #6377
Labels

Comments

@michalszelagsonos
Copy link

Describe the bug
Starting with 9.0.8, ODC fails with:

java.lang.NoSuchMethodError: 'void org.apache.commons.io.IOUtils.closeQuietly(java.io.Closeable[])

In our environment, switching back to 9.0.7 works without a problem.

Looking at the release notes from 9.0.8, this could be related, just a guess:

Version of dependency-check used
The problem occurs using version 9.0.8 of the gradle plugin.
Running with java17 and gradle 8.2.

Log file

13:05:10  Checking for updates and analyzing dependencies for vulnerabilities
13:05:10  Checking for updates
13:05:13  NVD API has 235,123 records in this update
13:05:23  Downloaded 10,000/235,123 (4%)
13:05:35  Downloaded 20,000/235,123 (9%)
13:05:45  Downloaded 30,000/235,123 (13%)
13:05:57  Downloaded 40,000/235,123 (17%)
13:06:15  Downloaded 50,000/235,123 (21%)
13:06:25  Downloaded 60,000/235,123 (26%)
13:06:35  Downloaded 70,000/235,123 (30%)
13:06:45  Downloaded 80,000/235,123 (34%)
13:07:03  Downloaded 90,000/235,123 (38%)
13:07:16  Downloaded 100,000/235,123 (43%)
13:07:25  Downloaded 110,000/235,123 (47%)
13:07:35  Downloaded 120,000/235,123 (51%)
13:07:53  Downloaded 130,000/235,123 (55%)
13:08:06  Downloaded 140,000/235,123 (60%)
13:08:16  Downloaded 150,000/235,123 (64%)
13:08:26  Downloaded 160,000/235,123 (68%)
13:08:44  Downloaded 170,000/235,123 (72%)
13:08:56  Downloaded 180,000/235,123 (77%)
13:09:06  Downloaded 190,000/235,123 (81%)
13:09:16  Downloaded 200,000/235,123 (85%)
13:09:34  Downloaded 210,000/235,123 (89%)
13:09:46  Downloaded 220,000/235,123 (94%)
13:09:56  Downloaded 230,000/235,123 (98%)
13:10:14  Downloaded 235,123/235,123 (100%)
13:10:14  Exception processing NVD API Results
13:10:14  java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: 'void org.apache.commons.io.IOUtils.closeQuietly(java.io.Closeable[])'
13:10:14  	at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
13:10:14  	at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
13:10:14  	at org.owasp.dependencycheck.data.update.NvdApiDataSource.processApi(NvdApiDataSource.java:398)
13:10:14  	at org.owasp.dependencycheck.data.update.NvdApiDataSource.update(NvdApiDataSource.java:116)
13:10:14  	at org.owasp.dependencycheck.Engine.doUpdates(Engine.java:906)
13:10:14  	at org.owasp.dependencycheck.Engine.initializeAndUpdateDatabase(Engine.java:711)
13:10:14  	at org.owasp.dependencycheck.Engine.analyzeDependencies(Engine.java:637)
13:10:14  	at org.owasp.dependencycheck.gradle.tasks.AbstractAnalyze.analyze(AbstractAnalyze.groovy:100)
13:10:14  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
13:10:14  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
13:10:14  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
13:10:14  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
13:10:14  	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
13:10:14  	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
13:10:14  	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
13:10:14  	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:233)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:216)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:199)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
13:10:14  	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
13:10:14  	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
13:10:14  	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
13:10:14  	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
13:10:14  	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
13:10:14  	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
13:10:14  	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
13:10:14  	at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
13:10:14  	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
13:10:14  	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
13:10:14  	at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
13:10:14  	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
13:10:14  	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
13:10:14  	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:179)
13:10:14  	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
13:10:14  	at org.gradle.internal.Either$Right.fold(Either.java:175)
13:10:14  	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
13:10:14  	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
13:10:14  	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
13:10:14  	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
13:10:14  	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
13:10:14  	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
13:10:14  	at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
13:10:14  	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
13:10:14  	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
13:10:14  	at java.base/java.util.Optional.orElseGet(Optional.java:364)
13:10:14  	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
13:10:14  	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
13:10:14  	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
13:10:14  	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
13:10:14  	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
13:10:14  	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
13:10:14  	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:77)
13:10:14  	at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:38)
13:10:14  	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
13:10:14  	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
13:10:14  	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
13:10:14  	at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
13:10:14  	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
13:10:14  	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
13:10:14  	at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
13:10:14  	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
13:10:14  	at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
13:10:14  	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
13:10:14  	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
13:10:14  	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
13:10:14  	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
13:10:14  	at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
13:10:14  	at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
13:10:14  	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:293)
13:10:14  	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
13:10:14  	at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
13:10:14  	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
13:10:14  	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
13:10:14  	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
13:10:14  	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
13:10:14  	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
13:10:14  	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
13:10:14  	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
13:10:14  	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
13:10:14  	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
13:10:14  	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
13:10:14  	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
13:10:14  	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
13:10:14  	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
13:10:14  	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
13:10:14  	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
13:10:14  	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
13:10:14  	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
13:10:14  	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
13:10:14  	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
13:10:14  	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
13:10:14  	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
13:10:14  	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
13:10:14  	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
13:10:14  	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
13:10:14  	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
13:10:14  	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
13:10:14  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
13:10:14  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
13:10:14  	at java.base/java.lang.Thread.run(Thread.java:833)
13:10:14  Caused by: java.lang.NoSuchMethodError: 'void org.apache.commons.io.IOUtils.closeQuietly(java.io.Closeable[])'
13:10:14  	at org.owasp.dependencycheck.data.update.nvd.api.JsonArrayCveItemSource.close(JsonArrayCveItemSource.java:51)
13:10:14  	at org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor.call(NvdApiProcessor.java:97)
13:10:14  	at org.owasp.dependencycheck.data.update.nvd.api.NvdApiProcessor.call(NvdApiProcessor.java:40)
13:10:14  	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
13:10:14  	... 3 more

To Reproduce
Run ODC and force DB update.

Expected behavior
ODC can download the NVD and complete the code scan.

@jeremylong
Copy link
Owner

Completely unrelated to #6343.

@jeremylong
Copy link
Owner

I'm betting there is a dependency conflict in the build environment. I just merged #6371 - which provides instructions on some of these wonderful gradle failures. See https://github.com/jeremylong/DependencyCheck?tab=readme-ov-file#gradle-build-environment; you may need to pin the version of commons-io 2.7. Looks like closeQuietly was introduced in 2.5.

@thejk
Copy link

thejk commented Jan 9, 2024

I have the same error and my buildEnvironment hasn't changed between 9.0.7 and 9.0.8, both use commons-io 2.15.0.
I wonder if it is related to "fix: ensure open handles will not leak on errors (#6326)", it adds use of the IOUtils.closeQuietly vararg version for the first time I think.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 13, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants