binance-exchange/binance-java-api

Change in api callers InvalidFormatException

LexProfi opened this issue · 4 comments

Recently, I began to receive an error.

com.binance.api.client.exception.BinanceApiException: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.binance.api.client.domain.general.RateLimitType` from String "RAW_REQUESTS": value not one of declared Enum instance names: [REQUEST_WEIGHT, ORDERS]
 at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 311] (through reference chain: com.binance.api.client.domain.general.ExchangeInfo["rateLimits"]->java.util.ArrayList[3]->com.binance.api.client.domain.general.RateLimit["rateLimitType"])
        at com.binance.api.client.impl.BinanceApiServiceGenerator.executeSync(BinanceApiServiceGenerator.java:79)
        at com.binance.api.client.impl.BinanceApiRestClientImpl.getExchangeInfo(BinanceApiRestClientImpl.java:44)
        at com.lex.replicator.mind.Client.exesOrder(Client.java:520)
        at com.lex.replicator.mind.Client.rebalanced(Client.java:319)
        at com.lex.GooseApplication.lambda$main$5(GooseApplication.java:123)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `com.binance.api.client.domain.general.RateLimitType` from String "RAW_REQUESTS": value not one of declared Enum instance names: [REQUEST_WEIGHT, ORDERS]
 at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 311] (through reference chain: com.binance.api.client.domain.general.ExchangeInfo["rateLimits"]->java.util.ArrayList[3]->com.binance.api.client.domain.general.RateLimit["rateLimitType"])
        at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
        at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1548)
        at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:910)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeAltString(EnumDeserializer.java:255)
        at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:179)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
        at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
        at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1611)
        at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1203)
        at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:32)
        at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23)
        at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
        at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
        at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
        at com.binance.api.client.impl.BinanceApiServiceGenerator.executeSync(BinanceApiServiceGenerator.java:71)
        ... 9 more

Previously, the code worked fine, what has changed in the binance api?

❯ gd
diff --git a/src/main/java/com/binance/api/client/domain/general/RateLimitType.java b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
index 25775da..b9b064c 100755
--- a/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
+++ b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  */
 @JsonIgnoreProperties(ignoreUnknown = true)
 public enum RateLimitType {
+  RAW_REQUESTS,^M
   REQUEST_WEIGHT,
   ORDERS
 }
❯ gd
 diff --git a / src / main / java / com / binance / api / client / domain / general / RateLimitType.java b / src / main / java / com / binance / api / client / domain / general / RateLimitType .Ява
индекс 25775da..b9b064c 100755
--- a / src / main / java / com / binance / api / client / domain / general / RateLimitType.java 
+++ b / src / main / java / com / binance / api / client / domain / general / RateLimitType .java 
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  * /
 @JsonIgnoreProperties (ignoreUnknown = true)
 public enum RateLimitType {
+   RAW_REQUESTS, ^ M
   REQUEST_WEIGHT,
   ЗАКАЗЫ
 }

Clarify - where were these changes made? Are they not in the current repository?

remote: Enumerating objects: 172, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (75/75), done.
remote: Total 172 (delta 51), reused 113 (delta 30), pack-reused 5
Receiving objects: 100% (172/172), 41.64 KiB | 5.95 MiB/s, done.
Resolving deltas: 100% (54/54), completed with 3 local objects.
From https://github.com/binance-exchange/binance-java-api
   7781ee0..dc6b4bc  master     -> origin/master
Updating 7781ee0..dc6b4bc
Fast-forward
 README.md                                                                                |   2 +-
 pom.xml                                                                                  |   6 ++--
 src/main/java/com/binance/api/client/BinanceApiClientFactory.java                        |  45 +++++++++++++++++++++++++-
 src/main/java/com/binance/api/client/BinanceApiRestClient.java                           |  44 +++++++++++++++++++++++---
 src/main/java/com/binance/api/client/config/BinanceApiConfig.java                        |  30 ++++++++++++++++++
 src/main/java/com/binance/api/client/constant/Util.java                                  |   2 +-
 src/main/java/com/binance/api/client/domain/ContingencyType.java                         |   8 +++++
 src/main/java/com/binance/api/client/domain/OCOOrderStatus.java                          |  10 ++++++
 src/main/java/com/binance/api/client/domain/OCOStatus.java                               |  10 ++++++
 src/main/java/com/binance/api/client/domain/account/DustTransferResponse.java            |  52 ++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOCO.java                          | 241 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOCOResponse.java                  |  88 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/NewOrder.java                        |  43 ++++++++++++++++---------
 src/main/java/com/binance/api/client/domain/account/Order.java                           |  50 ++++++++++++++++++-----------
 src/main/java/com/binance/api/client/domain/account/OrderList.java                       | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/OrderReport.java                     | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/SubAccountTransfer.java              |  20 ++++++++++++
 src/main/java/com/binance/api/client/domain/account/TransferResult.java                  |  91 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/AllOrderListRequest.java     |  77 +++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderListRequest.java  |  83 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderListResponse.java |   9 ++++++
 src/main/java/com/binance/api/client/domain/account/request/CancelOrderResponse.java     |  34 +++++++++++++-------
 src/main/java/com/binance/api/client/domain/account/request/OrderListStatusRequest.java  |  55 ++++++++++++++++++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java                  |  32 +++++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiService.java                         |  28 +++++++++++++++++
 src/main/java/com/binance/api/client/impl/BinanceApiServiceGenerator.java                |  19 ++++++++++-
 src/main/java/com/binance/api/client/impl/BinanceApiWebSocketClientImpl.java             |   2 +-
 27 files changed, 1310 insertions(+), 56 deletions(-)

I'm not sure what you are asking: it's indicated in the git diff:

+++ b/src/main/java/com/binance/api/client/domain/general/RateLimitType.java

which is indeed in this repository. Don't forget to run mvn install after applying these changes.

Thanks for clarifying @mcourteaux , closing this one.