A RetroSearch Logo

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

Search Query:

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

[java] Error processing identifiers with Unicode · Issue #3423 · pmd/pmd · GitHub

Affects PMD Version:

6.36.0

Description:

PMD fails to analyze Java source with variables named with Unicode characters. Additionally, I think this is causing Eclipse to entirely crash when this is encountered (as opposed to failing more gracefully) while using the com.basistech.m2e.code.quality.pmd plugin but I'm not certain how to diagnose this specifically.

This is likely related to the following issues but I created this issues for Java specifically and to mention the Eclipse crash:

Exception Stacktrace:

net.sourceforge.pmd.PMDException: Error while processing /home/nidoyle/Work/Source/PmdTest/src/main/java/com/example/pmdtest/PmdTest.java
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCodeWithoutCache(SourceCodeProcessor.java:119)
	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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	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:834)
Caused by: net.sourceforge.pmd.lang.ast.TokenMgrError: Lexical error at line 5, column 28.  Encountered: "\u1d64" (7524), after : "" (in lexical state 0)
	at net.sourceforge.pmd.lang.java.ast.JavaParserTokenManager.getNextToken(JavaParserTokenManager.java:2377)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_scan_token(JavaParser.java:13219)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_3R_126(JavaParser.java:9270)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_3_13(JavaParser.java:9421)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.jj_2_13(JavaParser.java:7931)
	at net.sourceforge.pmd.lang.java.ast.JavaParser.ClassOrInterfaceBodyDeclaration(JavaParser.java:1782)
	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:

package com.example.pmdtest;

public class PmdTest {

	private static final int lᵤ = 1;
	private static final int μᵤ = 2;

	public static void main(String[] args) {
		System.out.println(lᵤ + μᵤ);
	}

}

Steps to reproduce:

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

  1. mvn clean verify

Running PMD through: [Maven]


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