A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/5456 below:

[apex] Issue with java dependency apex-parser-4.3.1 but apex-parser-4.3.0 works · Issue #5456 · pmd/pmd · GitHub

I'm a developer of the Salesforce Code Analyzer and we use PMD as one of our engines of our product.

We have a gradle build file that sets as a dependency all of the pmd-* modules that we care so that it'll download the pmd jar files for us. We upgrade our version each month, but this month when specifying the dependency on
net.sourceforge.pmd:pmd-apex:7.9.0
we see that it is automatically pulling in apex-parser-4.3.1.jar which differs from what the release archive for PMD has - apex-parser-4.3.0.jar. And it seems to be causing an error when attempting to run PMD.

When we run a test like:

java -cp "/Users/stephen.carter/whatWeGetFromGradle/dist/pmd7/lib/*" net.sourceforge.pmd.cli.PmdCli check --file-list /tmp/file-list.txt --format xml -r /tmp/pmd-results.xml --rulesets category/apex/errorprone.xml

I'm getting the following error:

Exception in thread "main" java.lang.NoSuchMethodError: 'java.util.List io.github.apexdevtools.apexparser.ApexParser$WhenValueContext.id()'
	at com.google.summit.translation.Translate.visitWhenControl(Translate.kt:879)
	at com.google.summit.translation.Translate.visitSwitchStatement(Translate.kt:1750)
	at com.google.summit.translation.Translate.visitSwitchStatement(Translate.kt:106)
	at io.github.apexdevtools.apexparser.ApexParser$SwitchStatementContext.accept(ApexParser.java:4346)
	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at com.google.summit.translation.Translate.visitStatement(Translate.kt:1733)
	at com.google.summit.translation.Translate.visitBlock(Translate.kt:786)
	at com.google.summit.translation.Translate.visitBlock(Translate.kt:106)
	at io.github.apexdevtools.apexparser.ApexParser$BlockContext.accept(ApexParser.java:3848)
	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at com.google.summit.translation.Translate.visitStatement(Translate.kt:1733)
	at com.google.summit.translation.Translate.visitIfStatement(Translate.kt:1741)
	at com.google.summit.translation.Translate.visitIfStatement(Translate.kt:106)
	at io.github.apexdevtools.apexparser.ApexParser$IfStatementContext.accept(ApexParser.java:4276)
	at org.antlr.v4.runtime.tree.AbstractParseTreeVisitor.visit(AbstractParseTreeVisitor.java:18)
	at com.google.summit.translation.Translate.visitStatement(Translate.kt:1733)
	at com.google.summit.translation.Translate.visitBlock(Translate.kt:786)
	at com.google.summit.translation.Translate.visitMethodDeclaration(Translate.kt:480)
	at com.google.summit.translation.Translate.visitMemberDeclaration(Translate.kt:440)
	at com.google.summit.translation.Translate.visitClassBodyDeclaration(Translate.kt:399)
	at com.google.summit.translation.Translate.visitClassBody(Translate.kt:391)
	at com.google.summit.translation.Translate.visitClassDeclaration(Translate.kt:219)
	at com.google.summit.translation.Translate.visitTypeDeclaration(Translate.kt:259)
	at com.google.summit.translation.Translate.visitCompilationUnit(Translate.kt:158)
	at com.google.summit.translation.Translate.translate(Translate.kt:121)
	at com.google.summit.SummitAST.parseAndTranslate$_maven_lib(SummitAST.kt:153)
	at com.google.summit.SummitAST.parseAndTranslate(SummitAST.kt:110)
	at net.sourceforge.pmd.lang.apex.ast.ApexParser.parse(ApexParser.java:34)
	at net.sourceforge.pmd.lang.apex.ast.ApexParser.parse(ApexParser.java:18)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
	at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

But if I swap out the apex-parser-4.3.1.jar file with apex-parser-4.3.0.jar file then everything works fine.

Is this an issue with https://github.com/apex-dev-tools/apex-parser missing a dependency or something?

Either way, users who depend on the pmd modules directly in their gradle or maven builds will have this issue. It doesn't appear with users who download the release archive and unzip because your pmd-dist-7.9.0-bin.zip file contains apex-parser-4.3.0 instead of apex-parser-4.3.1.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4