Closed tony-schellenberg closed 4 years ago
It is possible to print the path, but ConsoleRenderer
class is Gradle internal so it could be difficult to keep the complete backward compatibility.
refs https://github.com/KengoTODA/spotbugs-gradle-plugin-v2/issues/102
The file path would be equivalent to what was there before which is an improvement for me.
Maybe this is a bad idea but based on the messages that I included in the original comment, it appears the exception message is being output. Could the actual violations be added into the message here https://github.com/spotbugs/spotbugs-gradle-plugin/blob/master/src/main/groovy/com/github/spotbugs/snom/internal/SpotBugsRunnerForWorker.java#L104 and make it to the console log?
The behavior makes it look like spotbugs had an error.
I now get the following:
org.gradle.api.GradleException: Verification failed: SpotBugs violation found: 1. SpotBugs report can be found in null
at com.github.spotbugs.snom.internal.SpotBugsRunnerForWorker$SpotBugsExecutor.execute(SpotBugsRunnerForWorker.java:104)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:42)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:42)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:85)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:55)
at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:136)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:133)
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.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:413)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
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:56)
at java.lang.Thread.run(Thread.java:748)
I tried to set the reportsDir
manually, but it didn't seem to work. I am running SpotBugsBase plugin v4.2.0 with the latest Gradle version.
@charis1331 please issue a new one, to let issues have just one topic to discuss.
For anyone else running into this, I'd like to confirm that upgrading to 4.2.0 fixed the problem for us in https://issues.apache.org/jira/browse/FINERACT-989 (and we're not seeing the new problem shown above), and use this opportunity to hereby cordially thank @KengoTODA for his ongoing maintenance of SpotBugs - you're a hero!
I'm upgrading from a previous version of the spotbugs-gradle-plugin (2.0.0 but I tried with 3.0.0 and got the same result) to 4.0.4. It's a multiproject build and ignoreFailures is set to false.
With the previous versions, it listed the output file where the errors were getting stored. In the new ones, it just says that an exception was thrown. We can deduce the output file location from the surrounding context but it was easier with the previous output (cut and past the file name).
If I could have whatever I wanted for output, it would be very helpful if it would list the errors similar to what the text output does as well as the output file name.
Using previous versions of the plugin, we would get output similar to the following on errors:
Using the current version, we've lost the name of the file that has the failures listed in it and just get this for output:
The internal stack trace is as follows: