Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-21363

camel-whatsapp - Serialization error in MessageResponse when the Message object returns "message_status" from the endpoint.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 4.8.1, 4.9.0
    • None
    • None
    • Unknown

    Description

      There was no registered Camel WhatsApp component in the list of components for this Jira, so I went ahead and created it in the camel-core module

       

      According to the WhatsApp Cloud API documentation, the message_status field is expected in the successful response. However, the MessageResponse object fails to deserialize this field because it is not currently mapped in the Message class. This results in an UnrecognizedPropertyException. The Message class needs to be updated to include this field to ensure proper deserialization. This error occurs while sending a template message

       

      Error description:

       

      Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "message_status" (class org.apache.camel.component.whatsapp.model.Message), not marked as ignorable (one known property: "id"])
       at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 12, column: 23] (through reference chain: org.apache.camel.component.whatsapp.model.MessageResponse["messages"]->java.util.ArrayList[0]->org.apache.camel.component.whatsapp.model.Message["message_status"])
          at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
          at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1153)
          at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2224)
          at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1793)
          at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1771)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:316)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
          at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:359)
          at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:244)
          at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:28)
          at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:310)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
          at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
          at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4899)
          at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3846)
          at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3814)
          at org.apache.camel.component.whatsapp.service.WhatsAppServiceRestAPIAdapter$OutgoingMessageHandler.lambda$sendMessage$0(WhatsAppServiceRestAPIAdapter.java:206)
          at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
          at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:614)
          at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:844)
          at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
          at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
          at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
          at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
          at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
          at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) 

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              juniiorviani Roberto Viani Junior
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: