diff --git a/rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyParserVisitor.java b/rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyParserVisitor.java index de572d20def..1ca3cb89ebf 100644 --- a/rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyParserVisitor.java +++ b/rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyParserVisitor.java @@ -599,14 +599,22 @@ private List> visitRightPadded(ASTNode[] nodes, @Nullable St } private Expression insideParentheses(ASTNode node, Function parenthesizedTree) { - AtomicInteger insideParenthesesLevel = node.getNodeMetaData("_INSIDE_PARENTHESES_LEVEL"); + Integer insideParenthesesLevel; + Object rawIpl = node.getNodeMetaData("_INSIDE_PARENTHESES_LEVEL"); + if(rawIpl instanceof AtomicInteger) { + // On Java 11 and newer _INSIDE_PARENTHESES_LEVEL is an AtomicInteger + insideParenthesesLevel = ((AtomicInteger) rawIpl).get(); + } else { + // On Java 8 _INSIDE_PARENTHESES_LEVEL is a regular Integer + insideParenthesesLevel = (Integer) rawIpl; + } if (insideParenthesesLevel != null) { Stack openingParens = new Stack<>(); - for (int i = 0; i < insideParenthesesLevel.get(); i++) { + for (int i = 0; i < insideParenthesesLevel; i++) { openingParens.push(sourceBefore("(")); } Expression parenthesized = parenthesizedTree.apply(whitespace()); - for (int i = 0; i < insideParenthesesLevel.get(); i++) { + for (int i = 0; i < insideParenthesesLevel; i++) { parenthesized = new J.Parentheses<>(randomId(), openingParens.pop(), Markers.EMPTY, padRight(parenthesized, sourceBefore(")"))); }