From e12229432a9f4899149c24a97cfb79d80f3a213c Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 16 Jul 2025 18:13:00 +0100 Subject: [PATCH] fix: move serializer initialization inside methods it prevents SDK from immediately posting an error log message about not having LiveObject installed --- lib/src/main/java/io/ably/lib/objects/LiveObjectsHelper.java | 2 +- .../java/io/ably/lib/objects/LiveObjectsJsonSerializer.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/src/main/java/io/ably/lib/objects/LiveObjectsHelper.java b/lib/src/main/java/io/ably/lib/objects/LiveObjectsHelper.java index 4edcbe9ef..288bf7459 100644 --- a/lib/src/main/java/io/ably/lib/objects/LiveObjectsHelper.java +++ b/lib/src/main/java/io/ably/lib/objects/LiveObjectsHelper.java @@ -34,7 +34,7 @@ public static LiveObjectSerializer getLiveObjectSerializer() { } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { - Log.e(TAG, "Failed to init LiveObjectSerializer, LiveObjects plugin not included in the classpath", e); + Log.w(TAG, "Failed to init LiveObjectSerializer, LiveObjects plugin not included in the classpath", e); return null; } } diff --git a/lib/src/main/java/io/ably/lib/objects/LiveObjectsJsonSerializer.java b/lib/src/main/java/io/ably/lib/objects/LiveObjectsJsonSerializer.java index f6a843474..505f9c5d8 100644 --- a/lib/src/main/java/io/ably/lib/objects/LiveObjectsJsonSerializer.java +++ b/lib/src/main/java/io/ably/lib/objects/LiveObjectsJsonSerializer.java @@ -13,10 +13,10 @@ public class LiveObjectsJsonSerializer implements JsonSerializer, JsonDeserializer { private static final String TAG = LiveObjectsJsonSerializer.class.getName(); - private final LiveObjectSerializer serializer = LiveObjectsHelper.getLiveObjectSerializer(); @Override public Object[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + LiveObjectSerializer serializer = LiveObjectsHelper.getLiveObjectSerializer(); if (serializer == null) { Log.w(TAG, "Skipping 'state' field json deserialization because LiveObjectsSerializer not found."); return null; @@ -29,6 +29,7 @@ public Object[] deserialize(JsonElement json, Type typeOfT, JsonDeserializationC @Override public JsonElement serialize(Object[] src, Type typeOfSrc, JsonSerializationContext context) { + LiveObjectSerializer serializer = LiveObjectsHelper.getLiveObjectSerializer(); if (serializer == null) { Log.w(TAG, "Skipping 'state' field json serialization because LiveObjectsSerializer not found."); return JsonNull.INSTANCE;