Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

telegram extension cannot construct IncomingMessageEntity for commands #888

Closed
vitaB opened this issue Mar 14, 2020 · 0 comments · Fixed by #893
Closed

telegram extension cannot construct IncomingMessageEntity for commands #888

vitaB opened this issue Mar 14, 2020 · 0 comments · Fixed by #893
Assignees

Comments

@vitaB
Copy link

vitaB commented Mar 14, 2020

I tried a simple bot that only logs the incoming messages.

@ApplicationScoped
class TelegramRoute {
    @Produces
    fun myRoutes() = routes {
        from("telegram:bots")
                .log("\${body}")
                .to("telegram:bots")
    }
}

This works for a normal text message, as a jar as well as native image. But as soon as I send a command (e.g. /start or /echo) the native variant throws the following errors:

2020-03-14 15:45:50,217 WARN  [org.apa.cam.com.tel.TelegramConsumer] (Camel (camel-1) thread #1 - telegram://bots) Consumer Consumer[telegram://bots] failed polling endpoint: telegram://bots. Will try again at next poll. Caused by: [java.lang.RuntimeException - Could not parse the response from GET https://api.telegram.org/botxxxxx/getUpdates?limit=100&timeout=30]: java.lang.RuntimeException: Could not parse the response from GET https://api.telegram.org/botxxxxxx/getUpdates?limit=100&timeout=30
        at org.apache.camel.component.telegram.service.TelegramServiceRestBotAPIAdapter.sendSyncRequest(TelegramServiceRestBotAPIAdapter.java:165)
        at org.apache.camel.component.telegram.service.TelegramServiceRestBotAPIAdapter.getUpdates(TelegramServiceRestBotAPIAdapter.java:149)
        at org.apache.camel.component.telegram.TelegramConsumer.poll(TelegramConsumer.java:59)
        at org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
        at org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
        at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:527)
        at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.apache.camel.component.telegram.model.IncomingMessageEntity` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (String)"{"ok":true,"result":[{"update_id":xxx,
"message":{"message_id":xxx,"from":{"id":xxxx,"is_bot":false,"first_name":"xxx","language_code":"de"},"chat":{"id":xxxx,"first_name":"xxx","type":"private"},"date":1584200750,"text":"/echo a","entities":[{"offset":0,"length":5,"type":"bot_command"}]}}]}"; line: 2, column: 218] (through reference chain: org.apache.camel.component.telegram.model.UpdateResult["result"]->java.util.ArrayList[0]->org.apache.camel.component.telegram.model.Update["message"]->org.apache.camel.component.telegram.model.IncomingMessage["entities"]->java.util.ArrayList[0])
        at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1589)
        at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1055)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1297)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
        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:129)
        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.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
        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:129)
        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.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3205)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3173)
        at org.apache.camel.component.telegram.service.TelegramServiceRestBotAPIAdapter.sendSyncRequest(TelegramServiceRestBotAPIAdapter.java:162)
        ... 13 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants