Getting - "ECJ: Unable to parse file" Error in SonarLint for IntelliJ

  • Operating system: Windows 10 64 bit
  • SonarLint plugin version: 4.7.0.17141
  • Programming language you’re coding in: Java
  • IntelliJ version : 2018.2 Community
  • JDK : 1.8 version

I’m using latest SonarLint in my project but facing below error. Please suggest How to resolve the problem?

Java Main Files AST scan
1 source files to be analyzed
ECJ: Unable to parse file
java.lang.NullPointerException
	at java.util.zip.ZipFile.getZipEntry(ZipFile.java:566)
	at java.util.zip.ZipFile.access$900(ZipFile.java:60)
	at java.util.zip.ZipFile$ZipEntryIterator.next(ZipFile.java:524)
	at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:499)
	at java.util.zip.ZipFile$ZipEntryIterator.nextElement(ZipFile.java:480)
	at org.eclipse.jdt.internal.compiler.batch.ClasspathJar.getModulesDeclaringPackage(ClasspathJar.java:240)
	at org.eclipse.jdt.internal.compiler.batch.ClasspathLocation.isPackage(ClasspathLocation.java:184)
	at org.eclipse.jdt.internal.compiler.batch.ClasspathJar.findClass(ClasspathJar.java:116)
	at org.eclipse.jdt.internal.compiler.batch.FileSystem.internalFindClass(FileSystem.java:472)
	at org.eclipse.jdt.internal.compiler.batch.FileSystem.findClass(FileSystem.java:414)
	at org.eclipse.jdt.internal.compiler.batch.FileSystem.findType(FileSystem.java:564)
	at org.eclipse.jdt.core.dom.NameEnvironmentWithProgress.findType(NameEnvironmentWithProgress.java:54)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createPlainPackage(LookupEnvironment.java:1133)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.buildTypeBindings(CompilationUnitScope.java:135)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.buildTypeBindings(LookupEnvironment.java:473)
	at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:854)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:394)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1173)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:714)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1217)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:832)
	at org.sonar.java.model.JParser.parse(JParser.java:284)
	at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:92)
	at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:64)
	at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:120)
	at org.sonar.java.JavaSquid.scan(JavaSquid.java:113)
	at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:103)
	at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:80)
	at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:71)
	at org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:134)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:110)
	at org.sonarsource.sonarlint.core.container.standalone.StandaloneGlobalContainer.analyze(StandaloneGlobalContainer.java:152)
	at org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.analyze(StandaloneSonarLintEngineImpl.java:91)
	at org.sonarlint.intellij.core.StandaloneSonarLintFacade.analyze(StandaloneSonarLintFacade.java:77)
	at org.sonarlint.intellij.core.SonarLintFacade.startAnalysis(SonarLintFacade.java:63)
	at org.sonarlint.intellij.analysis.SonarLintAnalyzer.analyzeModule(SonarLintAnalyzer.java:97)
	at org.sonarlint.intellij.analysis.SonarLintTask.analyze(SonarLintTask.java:187)
	at org.sonarlint.intellij.analysis.SonarLintTask.run(SonarLintTask.java:109)
	at org.sonarlint.intellij.analysis.SonarLintUserTask.run(SonarLintUserTask.java:40)
	at org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$1(SonarLintJobManager.java:120)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144)
	at org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$2(SonarLintJobManager.java:120)
	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:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Hi,

Welcome to the community!

I’m confused, you’ve asserted that you’re on the latest SonarLint version, but the latest release is 8.1.0.65508 and I believe it requires at least Java 11 to run.

You’re also a bit behind in your IntelliJ version. The latest there is 2022.3.3. Can you get everything upgraded and see if this is still replicable?

 
Thx,
Ann

Thanks Ann,

Is this plugin works in Maven projects in IntelliJ?
if so is there any POM dependencies to add?

Hi @Naresh_Babu,

SonarLint is a plugin for your IDE, you can download it directly from the JetBrains marketplace and it works with any kind of project, including Maven projects. You don’t have to add any POM dependencies.

Here is the page to download it from IntelliJ:

Thank you for using SonarLint!