A RetroSearch Logo

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

Search Query:

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

[java] Parse exception when using "record" as variable name · Issue #3145 · pmd/pmd · GitHub

Affects PMD Version: 6.32.0

Make sure, to test with the latest PMD version.

Description:

When using a variable named record, PMD fails with an exception. I imagine this is because the keyword record is reserved for JDK 16 support, but the source file actually compiles fine using the latest JDK 16 preview.

Exception Stacktrace:

net.sourceforge.pmd.PMDException: Error while parsing /tmp/test/RecordExample.java
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:116)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:95)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:57)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:85)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:29)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: net.sourceforge.pmd.lang.java.ast.ParseException: Encountered " "." ". "" at line 6, column 15.
Was expecting:
    <IDENTIFIER> ...
    
	at net.sourceforge.pmd.lang.java.ast.JavaParser.generateParseException(JavaParser.java:13324)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_consume_token(JavaParser.java:13208)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.RecordDeclaration(JavaParser.java:1304)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.LocalTypeDecl(JavaParser.java:5605)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.BlockStatement(JavaParser.java:5566)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.Block(JavaParser.java:5488)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.MethodDeclaration(JavaParser.java:2104)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBodyDeclaration(JavaParser.java:1785)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBody(JavaParser.java:1738)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceDeclaration(JavaParser.java:879)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.TypeDeclaration(JavaParser.java:781)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.CompilationUnit(JavaParser.java:501)
	at net.sourceforge.pmd.lang.java.AbstractJavaParser.parse(AbstractJavaParser.java:62)
	at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:127)
	at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:191)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:113)
	... 10 more

Code Sample demonstrating the issue:

import java.util.Map;
import java.util.HashMap;
public class RecordExample {
    public void main(String... args) {
        final Map<String, String> record = new HashMap<>();
        record.put("key", "value");
    }
}

Steps to reproduce:

Please provide detailed steps for how we can reproduce the bug.

  1. Simply run PMD on the source code above (pmd -R rulesets/java/quickstart.xml -f xml -d /tmp/test/).

Running PMD through: CLI


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