Problem
Most likely associated with templating J.NewClass nodes
Example diff
private boolean done = false; // true iff at EOF
private Writable key, spareKey, value;
- private Converter<K> keyConverter = o -> (K) o;
+ private Converter<K> keyConverter = /*~~(Recipe failed with an exception.
+java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
+ java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
+ java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
+ java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
+ java.base/java.util.Objects.checkIndex(Objects.java:359)
+ java.base/java.util.ArrayList.get(ArrayList.java:427)
+ org.openrewrite.java.internal.template.JavaTemplateParser.compileTemplate(JavaTemplateParser.java:247)
+ org.openrewrite.java.internal.template.JavaTemplateParser.parseBlockStatements(JavaTemplateParser.java:166)
+ org.openrewrite.java.JavaTemplate$2.maybeReplaceStatement(JavaTemplate.java:482)
+ ...)~~>*/o -> (K) o;
private Converter<V> valConverter = o -> (V) o;
https://github.com/apache/avro/blob/3c4f5adccffd894c106e81132f39d96cab4c20b3/lang/java/mapred/src/main/java/org/apache/avro/mapred/SequenceFileReader.java#L59
Recipes in example diff:
org.openrewrite.java.cleanup.ReplaceLambdaWithMethodReference
also check:
// predictable node names
final AtomicInteger suffix = new AtomicInteger();
binder.bind(new TypeLiteral<Supplier<String>>() {
- }).toInstance(new Supplier<String>() {
+ }).toInstance(/*~~(Recipe failed with an exception.
+java.lang.IllegalArgumentException: Expected a template that would generate exactly one statement to replace one statement, but generated 4. Template:
+() -> {return null;}
+ org.openrewrite.java.JavaTemplate$2.maybeReplaceStatement(JavaTemplate.java:486)
+ org.openrewrite.java.JavaTemplate$2.visitStatement(JavaTemplate.java:475)
+ org.openrewrite.java.JavaTemplate$2.visitStatement(JavaTemplate.java:102)
+ org.openrewrite.java.JavaVisitor.visitNewClass(JavaVisitor.java:921)
+ org.openrewrite.java.tree.J$NewClass.acceptJava(J.java:3950)
+ org.openrewrite.java.tree.J.accept(J.java:60)
+ org.openrewrite.TreeVisitor.visit(TreeVisitor.java:248)
+ org.openrewrite.TreeVisitor.visit(TreeVisitor.java:144)
+ ...)~~>*/new Supplier<String>() {
@Override
public String get() {
return suffix.getAndIncrement() + "";
https://github.com/apache/jclouds/blob/d913a5603727d10d6b85afa68c5ed6f6027f3e94/providers/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/GoogleComputeEngineTestModule.java#L88-L93
Recipes in example diff:
org.openrewrite.java.cleanup.UseLambdaForFunctionalInterface
References:
- View original result
- Recipe ID:
org.openrewrite.java.cleanup.ReplaceLambdaWithMethodReference
- Recipe Name:
undefined
- Repository:
apache/avro/master
- Created at Thu Oct 13 2022 10:46:06 GMT-0700 (Pacific Daylight Time)
Problem
Example diff
https://github.com/apache/avro/blob/3c4f5adccffd894c106e81132f39d96cab4c20b3/lang/java/mapred/src/main/java/org/apache/avro/mapred/SequenceFileReader.java#L59
Recipes in example diff:
org.openrewrite.java.cleanup.ReplaceLambdaWithMethodReferencealso check:
// predictable node names final AtomicInteger suffix = new AtomicInteger(); binder.bind(new TypeLiteral<Supplier<String>>() { - }).toInstance(new Supplier<String>() { + }).toInstance(/*~~(Recipe failed with an exception. +java.lang.IllegalArgumentException: Expected a template that would generate exactly one statement to replace one statement, but generated 4. Template: +() -> {return null;} + org.openrewrite.java.JavaTemplate$2.maybeReplaceStatement(JavaTemplate.java:486) + org.openrewrite.java.JavaTemplate$2.visitStatement(JavaTemplate.java:475) + org.openrewrite.java.JavaTemplate$2.visitStatement(JavaTemplate.java:102) + org.openrewrite.java.JavaVisitor.visitNewClass(JavaVisitor.java:921) + org.openrewrite.java.tree.J$NewClass.acceptJava(J.java:3950) + org.openrewrite.java.tree.J.accept(J.java:60) + org.openrewrite.TreeVisitor.visit(TreeVisitor.java:248) + org.openrewrite.TreeVisitor.visit(TreeVisitor.java:144) + ...)~~>*/new Supplier<String>() { @Override public String get() { return suffix.getAndIncrement() + "";https://github.com/apache/jclouds/blob/d913a5603727d10d6b85afa68c5ed6f6027f3e94/providers/google-compute-engine/src/test/java/org/jclouds/googlecomputeengine/internal/GoogleComputeEngineTestModule.java#L88-L93
Recipes in example diff:
org.openrewrite.java.cleanup.UseLambdaForFunctionalInterfaceReferences:
org.openrewrite.java.cleanup.ReplaceLambdaWithMethodReferenceundefinedapache/avro/master