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

Unhandled exception in ArgumentParameterSwap (take 2) #490

Closed
Stephan202 opened this issue Dec 3, 2016 · 1 comment
Closed

Unhandled exception in ArgumentParameterSwap (take 2) #490

Stephan202 opened this issue Dec 3, 2016 · 1 comment
Assignees

Comments

@Stephan202
Copy link
Contributor

This issue was first reported in a comment to #453, but the fix for #453 has since been released, so a new issue seems in order.


Minimal reproduction case:

import com.google.common.collect.ImmutableMap;
import java.util.Optional;

final class Dummy {
    private Dummy(final ImmutableMap<?, ?> map, final Optional<?> optional) {
        /* Assignment to field not necessary to trigger issue. */
    }

    static Dummy create() {
        return new Dummy(ImmutableMap.of(), Optional.empty());
    }
}

Stacktrace:

/some/local/path/including/company/package/name/Dummy.java:12: error: An unhandled exception was thrown by the Error Prone static analysis plugin.
        return new Dummy(ImmutableMap.of(), Optional.empty());
               ^
     Please report this at https://github.com/google/error-prone/issues/new and include the following:

     error-prone version: 2.0.15-SNAPSHOT
     Stack Trace:
     java.lang.ClassCastException: com.sun.tools.javac.code.Type$ForAll cannot be cast to com.sun.tools.javac.code.Type$MethodType
    at com.google.errorprone.bugpatterns.AbstractArgumentParameterChecker.isSubtypeHandleCompletionFailures(AbstractArgumentParameterChecker.java:217)
    at com.google.errorprone.bugpatterns.AbstractArgumentParameterChecker.lambda$findReplacements$1(AbstractArgumentParameterChecker.java:191)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:479)
    at java.util.stream.ReferencePipeline.max(ReferencePipeline.java:515)
    at com.google.errorprone.bugpatterns.AbstractArgumentParameterChecker.findReplacements(AbstractArgumentParameterChecker.java:198)
    at com.google.errorprone.bugpatterns.AbstractArgumentParameterChecker.matchNewClass(AbstractArgumentParameterChecker.java:135)
    at com.google.errorprone.bugpatterns.ArgumentParameterSwap.matchNewClass(ArgumentParameterSwap.java:42)
    at com.google.errorprone.scanner.ErrorProneScanner.visitNewClass(ErrorProneScanner.java:997)
    at com.google.errorprone.scanner.ErrorProneScanner.visitNewClass(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1675)
    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.visitReturn(TreeScanner.java:470)
    at com.google.errorprone.scanner.ErrorProneScanner.visitReturn(ErrorProneScanner.java:1066)
    at com.google.errorprone.scanner.ErrorProneScanner.visitReturn(ErrorProneScanner.java:144)
    at com.sun.tools.javac.tree.JCTree$JCReturn.accept(JCTree.java:1518)
    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:145)
    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:214)
    at com.google.errorprone.BaseErrorProneCompiler.run(BaseErrorProneCompiler.java:106)
    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:943)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:137)
    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)
@Stephan202
Copy link
Contributor Author

Just tested: this issue still reproduces with version 2.0.17.

@cushon cushon closed this as completed in bf8560b Mar 2, 2017
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this issue Mar 21, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.google.guava:guava-bom](https://github.com/google/guava)
([source](http://svn.sonatype.org/spice/trunk/oss/oss-parent-9)) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`33.4.0-jre` -> `33.4.5-jre` |
|
[com.google.apis:google-api-services-storage](http://nexus.sonatype.org/oss-repository-hosting.html)
([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`v1-rev20250224-2.0.0` -> `v1-rev20250312-2.0.0` |
|
[com.google.errorprone:error_prone_annotations](https://errorprone.info)
([source](https://github.com/google/error-prone)) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `2.36.0` -> `2.37.0` |
|
[com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)
| plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.12.0` ->
`2.13.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.3` -> `2.31.4` |

---

### Release Notes

<details>
<summary>google/error-prone
(com.google.errorprone:error_prone_annotations)</summary>

###
[`v2.37.0`](https://github.com/google/error-prone/releases/tag/v2.37.0):
Error Prone 2.37.0

Changes:

- The annotations that were previously in `error_prone_type_annotations`
have been been merged into `error_prone_annotations`.
`error_prone_type_annotations` is now deprecated, and will be removed in
a future release.

New checks:

-
[`AssignmentExpression`](https://errorprone.info/bugpattern/AssignmentExpression)
- The use of an assignment expression can be surprising and hard to
read; consider factoring out the assignment to a separate statement.
-
[`IntFloatConversion`](https://errorprone.info/bugpattern/IntFloatConversion)
- Detect calls to `scalb` that should be using the double overload
instead
- [`InvalidSnippet`](https://errorprone.info/bugpattern/InvalidSnippet)
- Detects snippets which omit the `:` required for inline code.
-
[`JUnit4EmptyMethods`](https://errorprone.info/bugpattern/JUnit4EmptyMethods)
- Detects empty JUnit4 `@Before`, `@After`, `@BeforeClass`, and
`@AfterClass` methods.
-
[`MockIllegalThrows`](https://errorprone.info/bugpattern/MockIllegalThrows)
- Detects cases where Mockito is configured to throw checked exception
types which are impossible.
-
[`NegativeBoolean`](https://errorprone.info/bugpattern/NegativeBoolean)
- Prefer positive boolean names.
- [`RuleNotRun`](https://errorprone.info/bugpattern/RuleNotRun) -
Detects `TestRule`s not annotated with `@Rule`, that won't be run.
-
[`StringConcatToTextBlock`](https://errorprone.info/bugpattern/StringConcatToTextBlock)
- Replaces concatenated multiline strings with text blocks.
-
[`TimeInStaticInitializer`](https://errorprone.info/bugpattern/TimeInStaticInitializer)
- Detects accesses of the system time in static contexts.

Closed issues:

- Propagate check flags in patch mode
([#&#8203;4699](google/error-prone#4699))
- Fixes a crash in ComputeIfAbsentAmbiguousReference
([#&#8203;4736](google/error-prone#4736))
- Show the field name in HidingField diagnostics
([#&#8203;4775](google/error-prone#4775))
- Add support for jakarta annotations to some checks
([#&#8203;4782](google/error-prone#4782))
- FloatingPointAssertionWithinEpsilonTest depends on default locale
([#&#8203;4815](google/error-prone#4815))
- `@InlineMe` patching of `Strings.repeat` produces broken code
([#&#8203;4819](google/error-prone#4819))
- Fix a crash in IdentifierName on unnamed (`_`) variables
([#&#8203;4847](google/error-prone#4847))
- Fix a crash in ArgumentParameterSwap
([#&#8203;490](google/error-prone#490))

Full changelog:
google/error-prone@v2.36.0...v2.37.0

</details>

<details>
<summary>autonomousapps/dependency-analysis-android-gradle-plugin
(com.autonomousapps.dependency-analysis)</summary>

###
[`v2.13.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2130)

- \[Feat]: `computeResolvedDependencies` to also generate a version
catalog file
- \[Feat]: experimenting with compressing intermediates, starting with
`exploded-jars.json`.
-   \[Chore]: remove unused moshi functions.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 9a8acb12117486aa61b1d54c73d77d84629e5e79
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants