diff --git a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/SubListSerializers.java b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/SubListSerializers.java index 32e932087a..60353e7866 100644 --- a/java/fury-core/src/main/java/org/apache/fury/serializer/collection/SubListSerializers.java +++ b/java/fury-core/src/main/java/org/apache/fury/serializer/collection/SubListSerializers.java @@ -78,8 +78,8 @@ public static void registerSerializers(Fury fury, boolean preserveView) { new Class[] { SubListClass, RandomAccessSubListClass, ArrayListSubListClass, ImmutableSubListClass }) { - if (preserveView && fury.getConfig().getLanguage() == Language.JAVA) { - fury.registerSerializer(cls, new SubListViewSerializer(fury, (Class) cls)); + if (fury.trackingRef() && preserveView && fury.getConfig().getLanguage() == Language.JAVA) { + fury.registerSerializer(cls, new SubListViewSerializer(fury, cls)); } else { fury.registerSerializer(cls, new SubListSerializer(fury, (Class) cls)); } diff --git a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SubListSerializersTest.java b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SubListSerializersTest.java index ee7bf8ad38..738ca0bc15 100644 --- a/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SubListSerializersTest.java +++ b/java/fury-core/src/test/java/org/apache/fury/serializer/collection/SubListSerializersTest.java @@ -32,7 +32,7 @@ public class SubListSerializersTest extends FuryTestBase { @Test public void testSubListViewSerialization() { - Fury fury = builder().build(); + Fury fury = builder().withRefTracking(true).build(); List data = new ArrayList<>(); Collections.addAll(data, 1, 2, 3, 4, 5, 6, 7); int length = fury.serialize(data).length; @@ -65,8 +65,7 @@ public void testSubListViewSerialization() { @Test public void testSubListNoViewSerialization() { - Fury fury = builder().build(); - SubListSerializers.registerSerializers(fury, false); + Fury fury = builder().withRefTracking(false).build(); List data = new ArrayList<>(); Collections.addAll(data, 1, 2, 3, 4, 5, 6, 7); int length = fury.serialize(data).length;