Skip to content

Unhandled exception in ArgumentParameterSwap #453

@Stephan202

Description

@Stephan202

Minimal class that seems to trigger the issue:

enum Enum {
    C(0);

    Enum(final int i) {
        /* Assignment to field not necessary to trigger issue. */
    }
}

Stack trace:

/some/local/path/including/company/package/name/Enum.java:6: error: An unhandled exception was thrown by the Error Prone static analysis plugin.
    Enum(final int i) {
                      ^
     Please report this at https://github.com/google/error-prone/issues/new and include the following:

     error-prone version: 2.0.12
     Stack Trace:
     java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at com.google.errorprone.bugpatterns.ArgumentParameterSwap.evaluateNames(ArgumentParameterSwap.java:112)
    at com.google.errorprone.bugpatterns.ArgumentParameterSwap.matchMethodInvocation(ArgumentParameterSwap.java:84)
    at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:952)
    at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1614)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:72)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:89)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    at com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:434)
    at com.google.errorprone.scanner.ErrorProneScanner.visitExpressionStatement(ErrorProneScanner.java:758)
    at com.google.errorprone.scanner.ErrorProneScanner.visitExpressionStatement(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1424)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:72)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:89)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    at com.sun.source.util.TreeScanner.scan(TreeScanner.java:106)
    at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:249)
    at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:575)
    at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:996)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:72)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:89)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91)
    at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:207)
    at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:943)
    at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:868)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:72)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:89)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:91)
    at com.sun.source.util.TreeScanner.scan(TreeScanner.java:106)
    at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:114)
    at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:188)
    at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:635)
    at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:778)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:72)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:89)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:43)
    at com.sun.source.util.TreeScanner.scan(TreeScanner.java:106)
    at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:114)
    at com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:145)
    at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:650)
    at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:561)
    at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:53)
    at com.google.errorprone.scanner.Scanner.scan(Scanner.java:68)
    at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
    at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:123)
    at com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:113)
    at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1303)
    at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1247)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:858)
    at com.sun.tools.javac.main.Main.compile(Main.java:253)
    at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:187)
    at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:98)
    at com.google.errorprone.ErrorProneCompiler.run(ErrorProneCompiler.java:128)
    at com.google.errorprone.ErrorProneCompiler.compile(ErrorProneCompiler.java:70)
    at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne$CompilerInvoker.compile(JavacCompilerWithErrorProne.java:219)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.compiler.javac.errorprone.JavacCompilerWithErrorProne.performCompile(JavacCompilerWithErrorProne.java:91)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:886)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:185)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:181)
    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:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions