After updating to version 2.10.4 the enclosed Java file cannot be parsed.
Java File
package id.bare.celprovider.function;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import dev.cel.runtime.CelFunctionBinding;
import dev.cel.runtime.CelFunctionOverload;
import id.bare.celprovider.CelRuntimeException;
import java.util.List;
import org.junit.jupiter.api.Test;
class UrlFunctionsTest {
private final UrlFunctions urlFunctions = new UrlFunctions();
@Test
void testUrlEncodeFunctionality() throws Exception {
var urlEncodeFunc = getFuncBinding("url_encode_string");
// spaces become %20, reserved characters are percent-encoded
assertThat(urlEncodeFunc.apply(new Object[] { "a b@c.de" }), is("a%20b%40c.de"));
// a literal + must not survive as a space
assertThat(urlEncodeFunc.apply(new Object[] { "1+1=2" }), is("1%2B1%3D2"));
// already encoded input is encoded again instead of being passed through
assertThat(urlEncodeFunc.apply(new Object[] { "a%2Fb" }), is("a%252Fb"));
// non-ASCII is UTF-8 encoded, including characters outside the BMP
assertThat(urlEncodeFunc.apply(new Object[] { "Müller" }), is("M%C3%BCller"));
assertThat(urlEncodeFunc.apply(new Object[] { "😀" }), is("%F0%9F%98%80"));
assertThat(urlEncodeFunc.apply(new Object[] { "" }), is(""));
}
@Test
void testUrlEncodeQueryFunctionality() throws Exception {
var urlEncodeQueryFunc = getFuncBinding("url_encodeQuery_string");
// form encoding: spaces become +
assertThat(urlEncodeQueryFunc.apply(new Object[] { "a b@c.de" }), is("a+b%40c.de"));
assertThat(urlEncodeQueryFunc.apply(new Object[] { "1+1=2" }), is("1%2B1%3D2"));
assertThat(urlEncodeQueryFunc.apply(new Object[] { "a%2Fb" }), is("a%252Fb"));
assertThat(urlEncodeQueryFunc.apply(new Object[] { "Müller" }), is("M%C3%BCller"));
assertThat(urlEncodeQueryFunc.apply(new Object[] { "😀" }), is("%F0%9F%98%80"));
assertThat(urlEncodeQueryFunc.apply(new Object[] { "" }), is(""));
}
@Test
void testUrlDecodeFunctionality() throws Exception {
var urlDecodeFunc = getFuncBinding("url_decode_string");
assertThat(urlDecodeFunc.apply(new Object[] { "a%20b%40c.de" }), is("a b@c.de"));
// + is not a space here
assertThat(urlDecodeFunc.apply(new Object[] { "a+b" }), is("a+b"));
assertThat(urlDecodeFunc.apply(new Object[] { "M%C3%BCller" }), is("Müller"));
assertThat(urlDecodeFunc.apply(new Object[] { "%F0%9F%98%80" }), is("😀"));
// malformed escapes are passed through instead of failing
assertThat(urlDecodeFunc.apply(new Object[] { "100%ZZ" }), is("100%ZZ"));
}
@Test
void testUrlDecodeQueryFunctionality() throws Exception {
var urlDecodeQueryFunc = getFuncBinding("url_decodeQuery_string");
assertThat(urlDecodeQueryFunc.apply(new Object[] { "a+b%40c.de" }), is("a b@c.de"));
assertThat(urlDecodeQueryFunc.apply(new Object[] { "M%C3%BCller" }), is("Müller"));
assertThat(urlDecodeQueryFunc.apply(new Object[] { "%F0%9F%98%80" }), is("😀"));
// error
assertThrows(CelRuntimeException.class, () -> {
urlDecodeQueryFunc.apply(new Object[] { "100%ZZ" });
});
}
@Test
void testUrlEncodeDecodeRoundTrip() throws Exception {
var urlEncodeFunc = getFuncBinding("url_encode_string");
var urlDecodeFunc = getFuncBinding("url_decode_string");
var urlEncodeQueryFunc = getFuncBinding("url_encodeQuery_string");
var urlDecodeQueryFunc = getFuncBinding("url_decodeQuery_string");
for (String input : List.of("a b@c.de", "1+1=2", "a%2Fb", "Müller & Söhne", "5€", "😀", "?&=#/")) {
assertThat(urlDecodeFunc.apply(new Object[] { urlEncodeFunc.apply(new Object[] { input }) }), is(input));
assertThat(
urlDecodeQueryFunc.apply(new Object[] { urlEncodeQueryFunc.apply(new Object[] { input }) }),
is(input)
);
}
}
private CelFunctionOverload getFuncBinding(String overloadId) {
CelFunctionBinding funcBinding = urlFunctions
.stream()
.map(CelFunctionDefinition::binding)
.filter(b -> overloadId.equals(b.getOverloadId()))
.findFirst()
.orElseThrow();
return funcBinding.getDefinition();
}
}
Log
2026-09-24T09:22:00.646458Z 01O Checking formatting...
2026-09-24T09:22:04.114116Z 01E [�[31merror�[39m] celprovider/src/test/java/id/bare/celprovider/function/UrlFunctionsTest.java: Error: Failed to parse: (program (package_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier))) (import_declaration (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (scoped_identifier scope: (identifier) name: (identifier)) name: (identifier)) name: (identifier)) name: (identifier))) (class_declaration name: (identifier) body: (class_body (field_declaration (modifiers (visibility) (modifier)) type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (object_creation_expression type: (type_identifier) arguments: (argument_list)))) (method_declaration (modifiers (marker_annotation name: (identifier))) type: (void_type) name: (identifier) parameters: (formal_parameters) (throws (type_identifier)) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (ERROR (UNEXPECTED 128512))))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal)))))))) (method_declaration (modifiers (marker_annotation name: (identifier))) type: (void_type) name: (identifier) parameters: (formal_parameters) (throws (type_identifier)) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (ERROR (UNEXPECTED 128512))))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal)))))))) (method_declaration (modifiers (marker_annotation name: (identifier))) type: (void_type) name: (identifier) parameters: (formal_parameters) (throws (type_identifier)) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (ERROR (UNEXPECTED 128512)))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))))) (method_declaration (modifiers (marker_annotation name: (identifier))) type: (void_type) name: (identifier) parameters: (formal_parameters) (throws (type_identifier)) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment))))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))) (method_invocation name: (identifier) arguments: (argument_list (string_literal (ERROR (UNEXPECTED 128512)))))))) (line_comment) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (class_literal (type_identifier)) (lambda_expression parameters: (formal_parameters) body: (block (expression_statement (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (string_literal (string_fragment)))))))))))))) (method_declaration (modifiers (marker_annotation name: (identifier))) type: (void_type) name: (identifier) parameters: (formal_parameters) (throws (type_identifier)) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation name: (identifier) arguments: (argument_list (string_literal (string_fragment)))))) (enhanced_for_statement type: (type_identifier) name: (identifier) value: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (string_literal (string_fragment)) (string_literal (string_fragment)) (string_literal (string_fragment)) (string_literal (string_fragment)) (string_literal (string_fragment)) (string_literal (ERROR (UNEXPECTED 128512))) (string_literal (string_fragment)))) body: (block (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (identifier))))))))) (method_invocation name: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (array_creation_expression type: (type_identifier) dimensions: (dimensions) value: (array_initializer (identifier))))))))) (method_invocation name: (identifier) arguments: (argument_list (identifier)))))))))) (method_declaration (modifiers (visibility)) type: (type_identifier) name: (identifier) parameters: (formal_parameters (formal_parameter type: (type_identifier) name: (identifier))) body: (block (local_variable_declaration type: (type_identifier) declarator: (variable_declarator name: (identifier) value: (method_invocation object: (method_invocation object: (method_invocation object: (method_invocation object: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list)) name: (identifier) arguments: (argument_list (method_reference (identifier) (identifier)))) name: (identifier) arguments: (argument_list (lambda_expression parameters: (identifier) body: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list))))))) name: (identifier) arguments: (argument_list)) name: (identifier) arguments: (argument_list)))) (return_statement (method_invocation object: (identifier) name: (identifier) arguments: (argument_list))))))))
2026-09-24T09:22:04.114194Z 01E [�[31merror�[39m] at Object.parse (file:///builds/.../node_modules/prettier-plugin-java/dist/index.mjs:2366:32)
2026-09-24T09:22:04.114196Z 01E [�[31merror�[39m] at async parse8 (file:///builds/.../node_modules/prettier/index.mjs:17739:11)
2026-09-24T09:22:04.114201Z 01E [�[31merror�[39m] at async coreFormat (file:///builds/.../node_modules/prettier/index.mjs:18282:7)
2026-09-24T09:22:04.114202Z 01E [�[31merror�[39m] at async formatWithCursor (file:///builds/.../node_modules/prettier/index.mjs:18502:14)
2026-09-24T09:22:04.114202Z 01E [�[31merror�[39m] at async formatFiles (file:///builds/.../node_modules/prettier/internal/legacy-cli.mjs:6661:18)
2026-09-24T09:22:04.114203Z 01E [�[31merror�[39m] at async main (file:///builds/.../node_modules/prettier/internal/legacy-cli.mjs:7050:5)
2026-09-24T09:22:04.114204Z 01E [�[31merror�[39m] at async Module.run (file:///builds/.../node_modules/prettier/internal/legacy-cli.mjs:6993:5)
After updating to version 2.10.4 the enclosed Java file cannot be parsed.
Java File
Log