-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
I think I've found a bug in the library when trying to map some summoner spells into a Java object.
Steps to reproduce
- Obtain a Champion-Select-time Session status ( LolChampSelectLegacyChampSelectSession ) with the
/lol-champ-select/v1/sessionendpoint like:
LolChampSelectLegacyChampSelectSession champSelectSession =
clientApi.executeGet("/lol-champ-select/v1/session", generated.LolChampSelectLegacyChampSelectSession.class).getResponseObject();- Created a Personalized match (Summoner's Rift, Team Size: 5, Recruitment), picked a champion, and had automatically selected Teleport and Heal as summoner spells.
- Tried to pull the team information with the LolChampSelectLegacyChampSelectSession#myTeam field but the JSON to Java mapping interrupted the operation with this exception message:
com.stirante.lolclient.libs.com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected a long but was 18446744073709551615 at line 1 column 2421 path $.myTeam[1].spell1Id
at com.stirante.lolclient.libs.com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:323)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:313)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
at com.stirante.lolclient.libs.com.google.gson.Gson.fromJson(Gson.java:887)
at com.stirante.lolclient.libs.com.google.gson.Gson.fromJson(Gson.java:852)
at com.stirante.lolclient.libs.com.google.gson.Gson.fromJson(Gson.java:801)
at com.stirante.lolclient.libs.com.google.gson.Gson.fromJson(Gson.java:773)
at com.stirante.lolclient.ClientApi.getResponse(ClientApi.java:530)
at com.stirante.lolclient.ClientApi.executeGet(ClientApi.java:438)
at org.white_sdev.white_lolpicker_client.service.LoLClientActions.getChampionSelectSessionStatus(LoLClientActions.java:87)
at org.white_sdev.white_lolpicker_client.service.LoLClientActions.getCurrentMatchPlayer(LoLClientActions.java:62)
at org.white_sdev.white_lolpicker_client.service.LoLClientActions.getCurrentMatchPlayerIntendedChampion(LoLClientActions.java:32)
at org.white_sdev.white_lolpicker_client.tasks.ChampionSelectListener.getSelectedChampionName(ChampionSelectListener.java:72)
at org.white_sdev.white_lolpicker_client.tasks.ChampionSelectListener.onClientConnected(ChampionSelectListener.java:34)
at com.stirante.lolclient.ClientApi.setupApiWithLockfile(ClientApi.java:214)
at com.stirante.lolclient.ClientApi.checkClientProcess(ClientApi.java:255)
at com.stirante.lolclient.ClientApi.lambda$startProcessWatcher$0(ClientApi.java:278)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.lang.NumberFormatException: Expected a long but was 18446744073709551615 at line 1 column 2421 path $.myTeam[1].spell1Id
at com.stirante.lolclient.libs.com.google.gson.stream.JsonReader.nextLong(JsonReader.java:967)
at com.stirante.lolclient.libs.com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:321)
Comments
- It seems to be due to the Java
Longmaximum supported value, on LolChampSelectLegacyChampSelectPlayerSelection#spell1Id and I assume it is the same case for the 2nd spell too. - I'm not really sure if we are using Jackson but it seems that Jackson supports automatic mapping to a
BigIntegerwhich will be my suggestion for a solution.- This implementation will interfere with the automatically generated Classes if it is directly manually implemented but I can't think of another one.
Metadata
Metadata
Assignees
Labels
No labels