Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lombok causes an IndexOutOfBoundsException in ParameterName #780

Closed
shakuzen opened this issue Oct 19, 2017 · 24 comments
Closed

lombok causes an IndexOutOfBoundsException in ParameterName #780

shakuzen opened this issue Oct 19, 2017 · 24 comments
Labels

Comments

@shakuzen
Copy link

After #690 was fixed, I removed the exclusions for the problematic bug patterns and tried to compile a project using Lombok, but it looks like the new bug pattern ParameterName also does not work well with Lombok it seems. Next time I'll make sure to try out Error Prone snapshots before a release :)

Versions

Error Prone version: 2.1.2
Lombok version: 1.16.18 / 1.16.16
Maven version: Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T04:39:06+09:00)
Java version: 1.8.0_144, vendor: Oracle Corporation

Note that I am also able to reproduce the issue with JDK 9.

Reproducing Class:

import lombok.Data;

@Data
public class SomeData {}

Stack trace

[ERROR]      Please report this at https://github.com/google/error-prone/issues/new and include the following:
[ERROR]   
[ERROR]      error-prone version: 2.1.2
[ERROR]      Stack Trace:
[ERROR]      java.lang.IndexOutOfBoundsException
[ERROR]         at java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:580)
[ERROR]         at java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:42)
[ERROR]         at com.google.errorprone.bugpatterns.ParameterName.checkArguments(ParameterName.java:85)
[ERROR]         at com.google.errorprone.bugpatterns.ParameterName.matchMethodInvocation(ParameterName.java:64)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:907)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1644)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.visitUnary(TreeScanner.java:612)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitUnary(ErrorProneScanner.java:1126)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitUnary(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCUnary.accept(JCTree.java:1956)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:418)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:758)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1427)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:530)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1026)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:206)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:898)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[ERROR]         at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:590)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:42)
[ERROR]         at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[ERROR]         at com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:144)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:605)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:146)
[ERROR]         at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
[ERROR]         at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:64)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:41)
[ERROR]         at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:145)
[ERROR]         at com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:120)
[ERROR]         at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1425)
[ERROR]         at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1374)
[ERROR]         at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:973)
[ERROR]         at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
[ERROR]         at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
[ERROR]         at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
[ERROR]         at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
[ERROR]         at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:137)
[ERROR]         at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:108)
[ERROR]         at com.google.errorprone.ErrorProneCompiler.run(ErrorProneCompiler.java:118)
[ERROR]         at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne$CompilerInvoker.compile(JavacCompilerWithErrorProne.java:222)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR]         at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne.performCompile(JavacCompilerWithErrorProne.java:91)
[ERROR]         at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1075)
[ERROR]         at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:168)
[ERROR]         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR]         at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR]         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
[ERROR]         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
[ERROR]         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
[ERROR]         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
[ERROR]         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
[ERROR]         at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR]         at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
[ERROR]         at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
[ERROR]         at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:50)

Workaround

Disable the newly introduced ParameterName bug pattern via a compiler argument: -Xep:ParameterName:OFF

@mmoayyed
Copy link

mmoayyed commented Jan 16, 2018

Quick update: This can be reproduced with error-prone 2.2.x and Lombok 1.16.20 as well. For those who might be using the Gradle plugin, this should be the relevant snippet that implements the above workaround:

tasks.withType(JavaCompile) {
        // workaround for: https://github.com/google/error-prone/issues/780
        options.compilerArgs += [ '-Xep:ParameterName:OFF' ]
}

@mmoayyed
Copy link

Just wanted to cross-reference this issue as well, related to the latest IntelliJ IDEA 2018 EAP builds:
https://youtrack.jetbrains.com/issue/IDEA-186848

@paul-bjorkstrand
Copy link

@mmoayyed thanks for that snippet. Helpful until the bug is resolved

@pmanwatkar
Copy link

Is this fixed yet?

@luengnat
Copy link

luengnat commented Sep 4, 2018

I still see this in errorprone 2.3.1

@firatkucuk
Copy link

For version 2.3.2. This issue still exists. I applied suggested workaround as a maven compiler parameter.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.0</version>
  <configuration>
    <compilerId>javac-with-errorprone</compilerId>
    <forceJavacCompilerUse>true</forceJavacCompilerUse>
    <source>8</source>
    <target>8</target>
    <compilerArgs>
      <arg>-Xep:ParameterName:OFF</arg>
    </compilerArgs>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.plexus</groupId>
      <artifactId>plexus-compiler-javac-errorprone</artifactId>
      <version>2.8.5</version>
    </dependency>
    <!-- override plexus-compiler-javac-errorprone's dependency on
         Error Prone with the latest version -->
    <dependency>
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_core</artifactId>
      <version>2.3.2</version>
    </dependency>
  </dependencies>
</plugin>

@msridhar
Copy link
Contributor

msridhar commented Nov 1, 2018

I believe this will be fixed when #1159 lands (which contains #1135)

@pc-mmautner
Copy link

Thanks for the link @msridhar

@cushon any idea on when the next release will be?

@anataliocs
Copy link

anataliocs commented Jan 4, 2019

When I try the workaround mentioned above I get the following error:

> invalid flag: -Xep:ParameterName:OFF

@tbroyer
Copy link
Contributor

tbroyer commented Jan 4, 2019

@anataliocs If you're using -Xplugin:ErrorProne (as now recommended), then the -Xep:ParameterName:OFF needs to be in the very same argument, separated by spaces.

@anataliocs
Copy link

anataliocs commented Jan 4, 2019

@tbroyer I was able to resolve the issue adding the arg to errorproneArgs in my gradle script block for the gradle errorprone plugin. Thanks though!

  tasks.withType(JavaCompile) {
    options.errorprone {
      disableWarningsInGeneratedCode = true
      ignoreUnknownCheckNames = true
      allErrorsAsWarnings = true
      // workaround for: https://github.com/google/error-prone/issues/780
      errorproneArgs = ['-Xep:ParameterName:OFF',
                        '-Xep:FallThrough:OFF',
                        '-Xep:FunctionalInterfaceClash:OFF',
                        '-Xep:AssertionFailureIgnored:OFF',
                        '-Xlint:unchecked',
                        '-Xlint:deprecation'
      ]
    }
  }

@kamilgregorczyk
Copy link

kamilgregorczyk commented Jan 16, 2019

I'm using 2.3.2 and I'm having the same issue, this bug was reported in 2017 and it still an issue?:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project bank: Compilation failure
[ERROR] /Users/kgregorczyk/IdeaProjects/bank/src/main/java/com/kgregorczyk/bank/aggregates/events/AccountCreatedEvent.java:[13,1] An unhandled exception was thrown by the Error Prone static analysis plugin.
[ERROR]      Please report this at https://github.com/google/error-prone/issues/new and include the following:
[ERROR]   
[ERROR]      error-prone version: 2.3.2
[ERROR]      BugPattern: ParameterName
[ERROR]      Stack Trace:
[ERROR]      java.lang.IndexOutOfBoundsException
[ERROR]         at java.base/java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:628)
[ERROR]         at java.base/java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:43)
[ERROR]         at com.google.errorprone.bugpatterns.ParameterName.checkArguments(ParameterName.java:86)
[ERROR]         at com.google.errorprone.bugpatterns.ParameterName.matchMethodInvocation(ParameterName.java:65)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:905)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1650)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitUnary(TreeScanner.java:612)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitUnary(ErrorProneScanner.java:1124)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitUnary(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCUnary.accept(JCTree.java:1962)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitIf(TreeScanner.java:418)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:756)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitIf(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1433)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:528)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1032)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:206)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:896)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:588)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:83)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
[ERROR]         at jdk.compiler/com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:144)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:603)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:146)
[ERROR]         at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
[ERROR]         at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
[ERROR]         at com.google.errorprone.scanner.Scanner.scan(Scanner.java:65)
[ERROR]         at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
[ERROR]         at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:151)
[ERROR]         at jdk.compiler/com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:120)
[ERROR]         at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1410)
[ERROR]         at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1357)
[ERROR]         at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:952)
[ERROR]         at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
[ERROR]         at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
[ERROR]         at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
[ERROR]         at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
[ERROR]         at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
[ERROR]         at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
[ERROR]         at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1129)
[ERROR]         at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:188)
[ERROR]         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
[ERROR]         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR]         at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
[ERROR]         at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR]         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
[ERROR]         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
[ERROR]         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
[ERROR]         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
[ERROR]         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
[ERROR]         at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
[ERROR]         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.base/java.lang.reflect.Method.invoke(Method.java:564)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR]         at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

@php-coder
Copy link

php-coder commented Jan 16, 2019

I'm using 2.3.2 and I'm having the same issue, this bug was reported in 2017 and it still an issue?:

The same here. Here is the code that could reproduce the error:

@Getter
@RequiredArgsConstructor
public class FileDto {
	private final Integer id;
	private final String type;
}

@msridhar
Copy link
Contributor

This is fixed on master but not in 2.3.2

@kamilgregorczyk
Copy link

kamilgregorczyk commented Jan 17, 2019 via email

@eaftan
Copy link
Contributor

eaftan commented Jan 17, 2019

@epmjohnston When are you planning to push the next release?

@clamothe
Copy link

Bump

@kamilgregorczyk
Copy link

Does 2.3.3 have it ?

@RoiEXLab
Copy link

2.3.3 should contain the fix, haven't tried it though

@kamilgregorczyk
Copy link

It can be closed, 2.3.3 is fine!

@SilverPreece
Copy link

Can also confirm that upgrading from 2.3.1 to 2.3.3 has resolved this issue for me.

@rearl
Copy link

rearl commented Mar 26, 2020

I use the latest version 2.3.4 and still get this error when a class uses the @slf4j annotation of lombok:

[ERROR]      Please report this at https://github.com/google/error-prone/issues/new and include the following:
[ERROR]   
[ERROR]      error-prone version: 2.3.4
[ERROR]      BugPattern: UnusedVariable
[ERROR]      Stack Trace:
[ERROR]      java.lang.IndexOutOfBoundsException
[ERROR]   	at java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:580)
[ERROR]   	at java.nio.HeapCharBuffer.subSequence(HeapCharBuffer.java:42)
[ERROR]   	at com.google.errorprone.VisitorState.getOffsetTokens(VisitorState.java:578)
[ERROR]   	at com.google.errorprone.fixes.SuggestedFixes.replaceIncludingComments(SuggestedFixes.java:1238)
[ERROR]   	at com.google.errorprone.bugpatterns.UnusedVariable.buildUnusedVarFixes(UnusedVariable.java:384)
[ERROR]   	at com.google.errorprone.bugpatterns.UnusedVariable.matchCompilationUnit(UnusedVariable.java:236)
[ERROR]   	at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:451)
[ERROR]   	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:557)
[ERROR]   	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:152)
[ERROR]   	at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:591)
[ERROR]   	at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
[ERROR]   	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:56)
[ERROR]   	at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
[ERROR]   	at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:152)
[ERROR]   	at com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:120)
[ERROR]   	at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1404)
[ERROR]   	at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1353)
[ERROR]   	at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:952)
[ERROR]   	at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
[ERROR]   	at com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
[ERROR]   	at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
[ERROR]   	at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
[ERROR]   	at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:143)
[ERROR]   	at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:114)
[ERROR]   	at com.google.errorprone.ErrorProneCompiler.run(ErrorProneCompiler.java:121)
[ERROR]   	at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne$CompilerInvoker.compile(JavacCompilerWithErrorProne.java:223)
[ERROR]   	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]   	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]   	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]   	at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR]   	at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne.performCompile(JavacCompilerWithErrorProne.java:91)
[ERROR]   	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1134)
[ERROR]   	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:187)
[ERROR]   	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
[ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
[ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
[ERROR]   	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
[ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR]   	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
[ERROR]   	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR]   	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
[ERROR]   	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
[ERROR]   	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
[ERROR]   	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
[ERROR]   	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
[ERROR]   	at org.apache.maven.cli.MavenCli.main(MavenCli.java:192)
[ERROR]   	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]   	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]   	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]   	at java.lang.reflect.Method.invoke(Method.java:498)
[ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
[ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
[ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
[ERROR]   	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
[ERROR]   	at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

So either this issue is not fixed or #1034 nor #905 are duplicates.

@vladtkachuk
Copy link

Yeah, I get exactly same issue with only lombok @Slf4j used on class

@cushon
Copy link
Collaborator

cushon commented Jan 19, 2021

re: #780 (comment), that stack trace contains BugPattern: UnusedVariable, this issue is about a crash in ParameterName.

@cushon cushon closed this as completed Jan 19, 2021
@cushon cushon changed the title IndexOutOfBoundsException in bugpatterns.ParameterName with Lombok lombok causes an IndexOutOfBoundsException in ParameterName Jan 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests