From 86a34d6c71f2bf8983cface9995b6718cbcb1319 Mon Sep 17 00:00:00 2001 From: Zach Kimberg Date: Wed, 10 Jan 2024 18:05:35 -0800 Subject: [PATCH 1/2] Suppress serial warning for JDK21 In JDK21, it now throws the serial warning for including potentially unserializable instance variables. This includes the standard Java data structures like List, Set, and Map. This changes the JDK21 support from https://github.com/deepjavalibrary/djl/pull/2903 to suppress the warning rather than no longer serializing the variables. --- .../ai/djl/modality/cv/output/CategoryMask.java | 4 +++- .../ai/djl/translate/PaddingStackBatchifier.java | 13 ++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java b/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java index c7d5414da28..d84730880d7 100644 --- a/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java +++ b/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java @@ -43,7 +43,9 @@ public class CategoryMask implements JsonSerializable { .registerTypeAdapter(CategoryMask.class, new SegmentationSerializer()) .create(); - private transient List classes; + @SuppressWarnings("serial") + private List classes; + private int[][] mask; /** diff --git a/api/src/main/java/ai/djl/translate/PaddingStackBatchifier.java b/api/src/main/java/ai/djl/translate/PaddingStackBatchifier.java index 359fe6bd7c5..f026bd431c9 100644 --- a/api/src/main/java/ai/djl/translate/PaddingStackBatchifier.java +++ b/api/src/main/java/ai/djl/translate/PaddingStackBatchifier.java @@ -29,10 +29,17 @@ public final class PaddingStackBatchifier implements Batchifier { private static final long serialVersionUID = 1L; - private transient List arraysToPad; - private transient List dimsToPad; + @SuppressWarnings("serial") + private List arraysToPad; + + @SuppressWarnings("serial") + private List dimsToPad; + private transient List paddingSuppliers; - private transient List paddingSizes; + + @SuppressWarnings("serial") + private List paddingSizes; + private boolean includeValidLengths; private PaddingStackBatchifier(Builder builder) { From fdab766c3de70580969fc78d3ac73090090d8d37 Mon Sep 17 00:00:00 2001 From: Zach Kimberg Date: Fri, 12 Jan 2024 12:21:53 -0800 Subject: [PATCH 2/2] Keep CategoryMask as transient --- api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java b/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java index d84730880d7..c7d5414da28 100644 --- a/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java +++ b/api/src/main/java/ai/djl/modality/cv/output/CategoryMask.java @@ -43,9 +43,7 @@ public class CategoryMask implements JsonSerializable { .registerTypeAdapter(CategoryMask.class, new SegmentationSerializer()) .create(); - @SuppressWarnings("serial") - private List classes; - + private transient List classes; private int[][] mask; /**