foojayio / discoclient

A Java library that makes it easier to access the foojay disco api
Apache License 2.0
6 stars 7 forks source link

MalformedJsonException on getPkgs #1

Open emilianbold opened 3 years ago

emilianbold commented 3 years ago

The server response doesn't always have the expected format and we get MalformedJsonException:

com.google.gson.stream.MalformedJsonException: Expected name at line 4 column 2 path $.info
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
        at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:505)
        at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414)
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:722)
        at com.google.gson.internal.bind.TypeAdapters$29.read(TypeAdapters.java:698)
        at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:894)
        at com.google.gson.Gson.fromJson(Gson.java:927)
Caused: com.google.gson.JsonSyntaxException
        at com.google.gson.Gson.fromJson(Gson.java:942)
        at com.google.gson.Gson.fromJson(Gson.java:892)
        at com.google.gson.Gson.fromJson(Gson.java:841)
        at com.google.gson.Gson.fromJson(Gson.java:813)
        at io.foojay.api.discoclient.DiscoClient.getPkgs(DiscoClient.java:307)
HanSolo commented 3 years ago

Could you provide an example call to reproduce the issue?

emilianbold commented 3 years ago

That's all I got.

I suspect it's some error condition on the server side that gets converted into something that's not quite a JSON and has an "info" field?

geertjanw commented 3 years ago

What was the API call you use, @emilianbold?

emilianbold commented 3 years ago

It was io.foojay.api.discoclient.DiscoClient.getPkgs(DiscoClient.java:307) which called whatever on the server side.