Claus Ibsen created CAMEL-26006:
-----------------------------------
Summary: camel-cbor - unmarshal without unmarshalType fails, which
is the first example of the docs
Key: CAMEL-26006
URL: https://issues.apache.org/jira/browse/CAMEL-26006
Project: Camel
Issue Type: Bug
Components: camel-cbor
Affects Versions: 4.18.0, 4.22.0, 4.23.0
Reporter: Claus Ibsen
Fix For: 4.24.0
The cbor data format has no default {{unmarshalType}} ({{CBORDataFormat}}, main
56aa5f4970a6, line 61), and unmarshal passes it to
{{objectMapper.readerFor(clazz)}} (line 118). Without {{unmarshalType}}, every
unmarshal fails with {{InvalidDefinitionException: No value type configured for
ObjectReader}}. With {{useList=true}} it fails with a NullPointerException in
{{constructCollectionType(collectionType, null)}} (line 115). This has been so
since the first commit (CAMEL-10324). The first example of the cbor docs is
exactly this case: {{unmarshal().cbor()}}, {{<cbor/>}} and {{cbor: {}}}. The
Jackson JSON data format defaults to a Map.
Checked on 4.24.0-SNAPSHOT with {{camel run}}:
* a Map, then {{marshal: cbor}}, then {{unmarshal: cbor}}: the
InvalidDefinitionException;
* the same with a List, or a String: the same;
* the same with {{useList: true}}: the NullPointerException;
* {{unmarshalType}} set to a POJO class: the POJO.
*Proposed change*: default to {{Object.class}} as JacksonDataFormat does, which
gives a Map for a CBOR map and a List for an array. Then update the body types
of the data format (unmarshalOut map and list) with it (CAMEL-24961).
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)