Closed AlexRassvet closed 3 years ago
Only in com.github.pengrad:java-telegram-bot-api:5.0.0
thanks for this @AlexRassvet, looking at it right now. What method did you execute?
It should be fixed in 5.0.1 but i still can't rerpoduce it. @AlexRassvet do you mind sharing what method caused it and your jvm environment?
Run command:
C:\jdk-15-AdoptOpenJDK\bin\java.exe --enable-preview -XX:+ShowCodeDetailsInExceptionMessages -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=64238 --module-path C:\<path>\build\classes\java\main;C:\<path>\build\resources\main;c:\m2_repo\org\apache\logging\log4j\log4j-slf4j-impl\2.13.3\log4j-slf4j-impl-2.13.3.jar;c:\m2_repo\org\apache\logging\log4j\log4j-core\2.13.3\log4j-core-2.13.3.jar;c:\m2_repo\com\github\pengrad\java-telegram-bot-api\5.0.0\java-telegram-bot-api-5.0.0.jar;c:\m2_repo\com\google\guava\guava\28.1-jre\guava-28.1-jre.jar;c:\m2_repo\com\google\code\gson\gson\2.8.6\gson-2.8.6.jar;c:\m2_repo\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;c:\m2_repo\commons-io\commons-io\2.7\commons-io-2.7.jar;c:\m2_repo\net\sf\supercsv\supercsv\2.4.0\supercsv-2.4.0.jar;c:\m2_repo\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;c:\m2_repo\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;c:\m2_repo\com\squareup\okhttp3\logging-interceptor\3.12.10\logging-interceptor-3.12.10.jar;c:\m2_repo\com\squareup\okhttp3\okhttp\3.12.10\okhttp-3.12.10.jar;c:\m2_repo\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;c:\m2_repo\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;c:\m2_repo\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;c:\m2_repo\org\checkerframework\checker-qual\2.8.1\checker-qual-2.8.1.jar;c:\m2_repo\com\google\errorprone\error_prone_annotations\2.3.2\error_prone_annotations-2.3.2.jar;c:\m2_repo\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;c:\m2_repo\org\codehaus\mojo\animal-sniffer-annotations\1.18\animal-sniffer-annotations-1.18.jar;c:\m2_repo\com\squareup\okio\okio\1.15.0\okio-1.15.0.jar --module telegram.bridge/org.alex.telegram.example.ReproduceBug222 -Dfile.encoding=windows-1251 -Duser.country=RU -Duser.language=ru -Duser.variant
org.alex.telegram.example.ReproduceBug222`
Code `package org.alex.telegram.example;
import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.request.SendMessage;
import java.util.Date;
public class ReproduceBug222 { public static void main(String[] args) { try { final int chatId = ...; TelegramBot bot = new TelegramBot("..."); bot.execute(new SendMessage(chatId, "Text 1" + new Date())); } catch (Exception e) { e.printStackTrace(); } } }`
Full stacktrace java.lang.RuntimeException: Unable to invoke no-args constructor for class com.pengrad.telegrambot.model.User. Registering an InstanceCreator with Gson for this type may fix this problem. at com.google.gson/com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:932) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:897) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:846) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:817) at java.telegram.bot.api/com.pengrad.telegrambot.impl.TelegramBotClient.send(TelegramBotClient.java:72) at java.telegram.bot.api/com.pengrad.telegrambot.TelegramBot.execute(TelegramBot.java:42) at telegram.bridge/org.alex.telegram.example.ReproduceBug222.main(ReproduceBug222.java:13) Caused by: java.lang.UnsupportedOperationException: Cannot allocate class com.pengrad.telegrambot.model.User Caused by: java.lang.UnsupportedOperationException: Cannot allocate class com.pengrad.telegrambot.model.User
at com.google.gson/com.google.gson.internal.UnsafeAllocator$4.newInstance(UnsafeAllocator.java:104)
at com.google.gson/com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:225)
... 12 more
5.0.1 works. Thanks!
https://github.com/pengrad/java-telegram-bot-api/blob/db496e2302b11e2924ea7e52e9408bc2c4360277/library/src/main/java/com/pengrad/telegrambot/model/User.java#L22
Exception in thread "main" java.lang.RuntimeException: Unable to invoke no-args constructor for class com.pengrad.telegrambot.model.User. Registering an InstanceCreator with Gson for this type may fix this problem. at com.google.gson/com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) at com.google.gson/com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:932) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:897) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:846) at com.google.gson/com.google.gson.Gson.fromJson(Gson.java:817) at java.telegram.bot.api/com.pengrad.telegrambot.impl.TelegramBotClient.send(TelegramBotClient.java:72) at java.telegram.bot.api/com.pengrad.telegrambot.TelegramBot.execute(TelegramBot.java:42)