Giter Site home page Giter Site logo

Comments (5)

stkent avatar stkent commented on August 16, 2024

Here's the PMD report file (build/outputs/gnag/pmd.xml) from the fix-pmd branch as-is:

<?xml version="1.0" encoding="UTF-8"?>
<pmd xmlns="http://pmd.sourceforge.net/report/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/report/2.0.0 http://pmd.sourceforge.net/report_2_0_0.xsd"
    version="6.10.0" timestamp="2019-01-03T21:34:33.940">
<file name="/Users/stkent/dev/personal/libraries/gnag/example-java-kotlin/src/main/java/com/btkelly/gnag/example/JavaFileInJavaSourceSet.java">
<violation beginline="28" endline="28" begincolumn="13" endcolumn="31" rule="CompareObjectsWithEquals" ruleset="Error Prone" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_errorprone.html#compareobjectswithequals" priority="3">
Use equals() to compare object references.
</violation>
<violation beginline="29" endline="29" begincolumn="13" endcolumn="28" rule="SystemPrintln" ruleset="Best Practices" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_bestpractices.html#systemprintln" priority="2">
System.out.print is used
</violation>
<violation beginline="33" endline="33" begincolumn="13" endcolumn="28" rule="SystemPrintln" ruleset="Best Practices" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_bestpractices.html#systemprintln" priority="2">
System.out.print is used
</violation>
<violation beginline="34" endline="34" begincolumn="18" endcolumn="26" rule="AvoidCatchingGenericException" ruleset="Design" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_design.html#avoidcatchinggenericexception" priority="3">
Avoid catching generic exceptions such as NullPointerException, RuntimeException, Exception in try-catch block
</violation>
<violation beginline="34" endline="36" begincolumn="11" endcolumn="9" rule="EmptyCatchBlock" ruleset="Error Prone" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_errorprone.html#emptycatchblock" priority="3">
Avoid empty catch blocks
</violation>
<violation beginline="36" endline="38" begincolumn="11" endcolumn="9" rule="EmptyFinallyBlock" ruleset="Error Prone" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="main" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_errorprone.html#emptyfinallyblock" priority="3">
Avoid empty finally blocks
</violation>
<violation beginline="42" endline="44" begincolumn="15" endcolumn="5" rule="UselessOverridingMethod" ruleset="Design" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="finalize" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_design.html#uselessoverridingmethod" priority="3">
Overriding method merely calls super
</violation>
<violation beginline="43" endline="43" begincolumn="9" endcolumn="25" rule="FinalizeOnlyCallsSuperFinalize" ruleset="Error Prone" package="com.btkelly.gnag.example" class="JavaFileInJavaSourceSet" method="finalize" externalInfoUrl="https://pmd.github.io/pmd-6.10.0/pmd_rules_java_errorprone.html#finalizeonlycallssuperfinalize" priority="3">
Finalize should do something besides just calling super.finalize()
</violation>
</file>
<configerror rule="LoosePackageCoupling" msg="No packages or classes specified"/>
</pmd>

Here's the PMD report file (build/outputs/gnag/pmd.xml) from the fix-pmd branch with Checkstyle version bumped to 8.2:

<?xml version="1.0" encoding="UTF-8"?>
<pmd xmlns="http://pmd.sourceforge.net/report/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/report/2.0.0 http://pmd.sourceforge.net/report_2_0_0.xsd"
    version="6.10.0" timestamp="2019-01-03T21:37:24.180">
<error filename="/Users/stkent/dev/personal/libraries/gnag/example-java-kotlin/src/main/java/com/btkelly/gnag/example/JavaFileInJavaSourceSet.java" msg="PMDException: Error while processing /Users/stkent/dev/personal/libraries/gnag/example-java-kotlin/src/main/java/com/btkelly/gnag/example/JavaFileInJavaSourceSet.java">
<![CDATA[net.sourceforge.pmd.PMDException: Error while processing /Users/stkent/dev/personal/libraries/gnag/example-java-kotlin/src/main/java/com/btkelly/gnag/example/JavaFileInJavaSourceSet.java
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:102)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
	at net.sourceforge.pmd.processor.MonoThreadProcessor.runAnalysis(MonoThreadProcessor.java:29)
	at net.sourceforge.pmd.processor.AbstractPMDProcessor.processFiles(AbstractPMDProcessor.java:108)
	at net.sourceforge.pmd.PMD.processFiles(PMD.java:329)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.doTask(PMDTaskImpl.java:190)
	at net.sourceforge.pmd.ant.internal.PMDTaskImpl.execute(PMDTaskImpl.java:275)
	at net.sourceforge.pmd.ant.PMDTask.execute(PMDTask.java:50)
	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.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:352)
	at org.apache.tools.ant.Task$perform.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
	at com.btkelly.gnag.reporters.PMDViolationDetector.executeReporter(PMDViolationDetector.groovy:65)
	at com.btkelly.gnag.tasks.GnagCheckTask.lambda$executeGnagCheck$0(GnagCheckTask.java:111)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at com.btkelly.gnag.tasks.GnagCheckTask.executeGnagCheck(GnagCheckTask.java:109)
	at com.btkelly.gnag.tasks.GnagCheckTask.taskAction(GnagCheckTask.java:102)
	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:73)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:794)
	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:761)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:74)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:131)
	at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
	at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
	at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:46)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
	at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
	at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:343)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:212)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:140)
	at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:115)
	at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
	at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
	at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
	at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
	at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:43)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:65)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
	at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
	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.SecurityException: class "net.sf.saxon.om.Item"'s signer information does not match signer information of other classes in the same package
	at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
	at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at net.sourceforge.pmd.lang.rule.XPathRule.initRuleQueryBasedOnVersion(XPathRule.java:145)
	at net.sourceforge.pmd.lang.rule.XPathRule.initXPathRuleQuery(XPathRule.java:128)
	at net.sourceforge.pmd.lang.rule.XPathRule.getRuleChainVisits(XPathRule.java:151)
	at net.sourceforge.pmd.lang.rule.AbstractRule.isRuleChain(AbstractRule.java:310)
	at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.isRuleChain(AbstractDelegateRule.java:311)
	at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.isRuleChain(AbstractDelegateRule.java:311)
	at net.sourceforge.pmd.lang.rule.AbstractRuleChainVisitor.initialize(AbstractRuleChainVisitor.java:158)
	at net.sourceforge.pmd.lang.rule.AbstractRuleChainVisitor.visitAll(AbstractRuleChainVisitor.java:63)
	at net.sourceforge.pmd.RuleChain.apply(RuleChain.java:67)
	at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:140)
	at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:184)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:96)
	... 154 more
]]>
</error>
<configerror rule="LoosePackageCoupling" msg="No packages or classes specified"/>
</pmd>

from gnag.

stkent avatar stkent commented on August 16, 2024

Snippets from dependency reports on fix-pmd branch (../gradlew dependencies), important lines marked with <---:

Using Checkstyle 8.1:

+--- com.puppycrawl.tools:checkstyle:8.1
|    +--- antlr:antlr:2.7.7
|    +--- org.antlr:antlr4-runtime:4.7
|    +--- commons-beanutils:commons-beanutils:1.9.3
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- commons-collections:commons-collections:3.2.2
|    +--- commons-cli:commons-cli:1.4
|    \--- com.google.guava:guava:22.0
|         +--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
|         +--- com.google.errorprone:error_prone_annotations:2.0.18
|         +--- com.google.j2objc:j2objc-annotations:1.1
|         \--- org.codehaus.mojo:animal-sniffer-annotations:1.14

...

\--- net.sourceforge.pmd:pmd-java:6.10.0
     +--- net.java.dev.javacc:javacc:5.0
     +--- net.sourceforge.pmd:pmd-core:6.10.0
     |    +--- org.antlr:antlr4-runtime:4.7
     |    +--- com.beust:jcommander:1.72
     |    +--- commons-io:commons-io:2.6
     |    +--- net.java.dev.javacc:javacc:5.0
     |    +--- net.sourceforge.saxon:saxon:9.1.0.8                 <---
     |    +--- org.apache.commons:commons-lang3:3.8.1
     |    +--- org.ow2.asm:asm:6.2.1
     |    \--- com.google.code.gson:gson:2.5
     +--- net.sourceforge.saxon:saxon:9.1.0.8                      <---

Using Checkstyle 8.2:

+--- com.puppycrawl.tools:checkstyle:8.2
|    +--- antlr:antlr:2.7.7
|    +--- org.antlr:antlr4-runtime:4.7
|    +--- commons-beanutils:commons-beanutils:1.9.3
|    |    +--- commons-logging:commons-logging:1.2
|    |    \--- commons-collections:commons-collections:3.2.2
|    +--- commons-cli:commons-cli:1.4
|    +--- com.google.guava:guava:23.0
|    |    +--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
|    |    +--- com.google.errorprone:error_prone_annotations:2.0.18
|    |    +--- com.google.j2objc:j2objc-annotations:1.1
|    |    \--- org.codehaus.mojo:animal-sniffer-annotations:1.14
|    \--- net.sf.saxon:Saxon-HE:9.8.0-4                            <--- new!

...

\--- net.sourceforge.pmd:pmd-java:6.10.0
     +--- net.java.dev.javacc:javacc:5.0
     +--- net.sourceforge.pmd:pmd-core:6.10.0
     |    +--- org.antlr:antlr4-runtime:4.7
     |    +--- com.beust:jcommander:1.72
     |    +--- commons-io:commons-io:2.6
     |    +--- net.java.dev.javacc:javacc:5.0
     |    +--- net.sourceforge.saxon:saxon:9.1.0.8                 <---
     |    +--- org.apache.commons:commons-lang3:3.8.1
     |    +--- org.ow2.asm:asm:6.2.1
     |    \--- com.google.code.gson:gson:2.5
     +--- net.sourceforge.saxon:saxon:9.1.0.8                      <---
     +--- org.ow2.asm:asm:6.2.1
     +--- commons-io:commons-io:2.6
     \--- org.apache.commons:commons-lang3:3.8.1

To be clear: net.sourceforge.saxon:saxon and net.sf.saxon:Saxon-HE both include classes in the same packages.

from gnag.

stkent avatar stkent commented on August 16, 2024

Ok, this looks promising: pmd/pmd#1294

Using the outdated one, causes problems in projects that use have e.g. both PMD and checkstyle as a dependency (like qulice) because checkstyle uses the newer saxon and there are conflicts between classes used.

qulice is YAGC (yet another Gnag competitor) that has run into the same issue as we have.

The PMD folks have these things to say:

I just checked the qulice code and it's embedding all tools without isolation, so they fail where Maven can succeed when using the checkstyle and pmd plugins on their own.

A later comment offers some suggestions for addressing this problem, though they are Maven-specific. It also sounds like this issue may go away when PMD 7 is released, but that there's no guarantee it won't resurface in the future?

from gnag.

stkent avatar stkent commented on August 16, 2024

FWIW the PMD folks seem to have been a bit optimistic as to when v7 will release; right now they are ~20% of the way to their milestone (https://github.com/pmd/pmd/milestone/19).

from gnag.

stkent avatar stkent commented on August 16, 2024

Forcing both PMD and Checkstyle to use the older saxon seems to work:

https://github.com/teamed/qulice/pull/924/files#diff-114c410e043b6604a613c64a6616f3b6

[I have not verified that Checkstyle does not use dynamic checks on the saxon version to enable functionality.]

@btkelly let me know if you are interested in that workaround or if you'd instead prefer to look for a more robust long-term solution.

from gnag.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.