From bd3a107a5bdcbb242505bfd3020e71fee78840ad Mon Sep 17 00:00:00 2001 From: "tom.johnson" Date: Thu, 30 Nov 2023 15:32:20 +0000 Subject: [PATCH] [JDK21] suppress this-escape warning: allows compilation without errors under JDK21. There are ways of solving this without the suppression, but they require more discussion and work: this is a good starting point for what's likely to be over-eager analysis for most use cases. --- .../artio/dictionary/generation/DecoderGenerator.java | 1 + .../artio/dictionary/generation/EncoderGenerator.java | 2 ++ .../real_logic/artio/dictionary/generation/GenerationUtil.java | 1 + 3 files changed, 4 insertions(+) diff --git a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/DecoderGenerator.java b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/DecoderGenerator.java index b337589c5d..3824b0cf57 100644 --- a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/DecoderGenerator.java +++ b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/DecoderGenerator.java @@ -315,6 +315,7 @@ private String classDeclaration( return String.format( "\n" + GENERATED_ANNOTATION + + SUPPRESS_THIS_ESCAPE_ANNOTATION + "public %3$s%4$sclass %1$s extends %5$s%2$s\n" + "{\n", className, diff --git a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/EncoderGenerator.java b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/EncoderGenerator.java index aeef53ca25..da42d942b0 100644 --- a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/EncoderGenerator.java +++ b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/EncoderGenerator.java @@ -41,6 +41,7 @@ import static uk.co.real_logic.artio.dictionary.generation.AggregateType.HEADER; import static uk.co.real_logic.artio.dictionary.generation.EnumGenerator.enumName; import static uk.co.real_logic.artio.dictionary.generation.GenerationUtil.GENERATED_ANNOTATION; +import static uk.co.real_logic.artio.dictionary.generation.GenerationUtil.SUPPRESS_THIS_ESCAPE_ANNOTATION; import static uk.co.real_logic.artio.dictionary.generation.GenerationUtil.fileHeader; import static uk.co.real_logic.artio.dictionary.generation.GenerationUtil.importFor; import static uk.co.real_logic.artio.dictionary.generation.OptionalSessionFields.ENCODER_OPTIONAL_SESSION_FIELDS; @@ -346,6 +347,7 @@ private String classDeclaration( return String.format( "\n" + GENERATED_ANNOTATION + + SUPPRESS_THIS_ESCAPE_ANNOTATION + "public %3$s%4$sclass %1$s%5$s%2$s\n" + "{\n", className, diff --git a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/GenerationUtil.java b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/GenerationUtil.java index ad653ef334..006c9fe445 100644 --- a/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/GenerationUtil.java +++ b/artio-codecs/src/main/java/uk/co/real_logic/artio/dictionary/generation/GenerationUtil.java @@ -30,6 +30,7 @@ public final class GenerationUtil public static final String INDENT = " "; public static final String GENERATED_ANNOTATION = "@Generated(\"uk.co.real_logic.artio\")\n"; + public static final String SUPPRESS_THIS_ESCAPE_ANNOTATION = "@SuppressWarnings(\"this-escape\")\n"; private GenerationUtil() {