walterholohan / react-native-crisp-chat-sdk

React-Native bridge for Crisp Chat iOS and Android SDK's
MIT License
70 stars 26 forks source link

Crash due to NumberFormatException on loading chat conversation #36

Closed sudhirsinghct closed 1 year ago

sudhirsinghct commented 2 years ago

We are trying to integrate the Crisp react native sdk within our app. We are using version : "0.7.0" of the SDK. Recently, we encountered that for a few users the crisp sdk crashes when the user tries to open a chat window which has some preloaded text(earlier conversation) in it. From the log it seems the issue is in parsing the json response and sdk is throwing a NumberFormatException.

Exception thrown:


2021-07-19 17:21:49.730 5136-5396/? E/e.b.h.a: Task threw exception
    com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected a long but was 237.3333282470703 at line 1 column 1067 path $.storage.state.scroll
        at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:5)
        at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:1)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9)
        at com.google.gson.Gson.fromJson(Gson.java:17)
        at com.google.gson.Gson.fromJson(Gson.java:10)
        at com.google.gson.Gson.fromJson(Gson.java:4)
        at com.google.gson.Gson.fromJson(Gson.java:1)
        at im.crisp.client.b.d.c.a.a(Unknown Source:8)
        at im.crisp.client.b.d.a.v(Unknown Source:10)
        at im.crisp.client.b.d.a.r(Unknown Source:0)
        at im.crisp.client.b.d.h.a(Unknown Source:2)
        at e.b.b.a.a(Emitter.java:3)
        at io.socket.client.e.I(Socket.java:10)
        at io.socket.client.e.K(Socket.java:7)
        at io.socket.client.e.i(Socket.java:1)
        at io.socket.client.e$b$b.a(Socket.java:1)
        at e.b.b.a.a(Emitter.java:3)
        at io.socket.client.c.Q(Manager.java:1)
        at io.socket.client.c.p(Manager.java:1)
        at io.socket.client.c$j.a(Manager.java:1)
        at e.b.g.b$b.a(IOParser.java:4)
        at io.socket.client.c.O(Manager.java:1)
        at io.socket.client.c.j(Manager.java:1)
        at io.socket.client.c$e.a(Manager.java:3)
        at e.b.b.a.a(Emitter.java:3)
        at io.socket.engineio.client.b.Q(Socket.java:19)
        at io.socket.engineio.client.b.i(Socket.java:1)
        at io.socket.engineio.client.b$p.a(Socket.java:1)
        at e.b.b.a.a(Emitter.java:3)
        at io.socket.engineio.client.c.p(Transport.java:1)
        at io.socket.engineio.client.c.l(Transport.java:1)
        at io.socket.engineio.client.d.c.u(WebSocket.java:1)
        at io.socket.engineio.client.d.c$a$b.run(WebSocket.java:1)
        at e.b.h.a$b.run(EventThread.java:1)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.NumberFormatException: Expected a long but was 237.3333282470703 at line 1 column 1067 path $.storage.state.scroll
        at com.google.gson.stream.JsonReader.nextLong(JsonReader.java:19)
        at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:4)
        at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:1) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:1) 
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:9) 
        at com.google.gson.Gson.fromJson(Gson.java:17) 
        at com.google.gson.Gson.fromJson(Gson.java:10) 
        at com.google.gson.Gson.fromJson(Gson.java:4) 
        at com.google.gson.Gson.fromJson(Gson.java:1) 
        at im.crisp.client.b.d.c.a.a(Unknown Source:8) 
        at im.crisp.client.b.d.a.v(Unknown Source:10) 
        at im.crisp.client.b.d.a.r(Unknown Source:0) 
        at im.crisp.client.b.d.h.a(Unknown Source:2) 
        at e.b.b.a.a(Emitter.java:3) 
        at io.socket.client.e.I(Socket.java:10) 
        at io.socket.client.e.K(Socket.java:7) 
        at io.socket.client.e.i(Socket.java:1) 
        at io.socket.client.e$b$b.a(Socket.java:1) 
        at e.b.b.a.a(Emitter.java:3) 
        at io.socket.client.c.Q(Manager.java:1) 
        at io.socket.client.c.p(Manager.java:1) 
        at io.socket.client.c$j.a(Manager.java:1) 
        at e.b.g.b$b.a(IOParser.java:4) 
        at io.socket.client.c.O(Manager.java:1) 
        at io.socket.client.c.j(Manager.java:1) 
        at io.socket.client.c$e.a(Manager.java:3) 
        at e.b.b.a.a(Emitter.java:3) 
        at io.socket.engineio.client.b.Q(Socket.java:19) 
        at io.socket.engineio.client.b.i(Socket.java:1) 
        at io.socket.engineio.client.b$p.a(Socket.java:1) 
        at e.b.b.a.a(Emitter.java:3) 
        at io.socket.engineio.client.c.p(Transport.java:1) 
        at io.socket.engineio.client.c.l(Transport.java:1) 
        at io.socket.engineio.client.d.c.u(WebSocket.java:1) 
        at io.socket.engineio.client.d.c$a$b.run(WebSocket.java:1) 
        at e.b.h.a$b.run(EventThread.java:1) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
        at java.lang.Thread.run(Thread.java:764) 
walterholohan commented 2 years ago

Can you retest? I have just released a new version that uses the latest version of the Crisp Android SDK - https://github.com/crisp-im/crisp-sdk-android

If the issue still persists it might be a good idea to raise an issue on the Android SDK repo above