[
https://issues.apache.org/jira/browse/CAMEL-20732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-20732:
--------------------------------
Fix Version/s: 4.4.3
> RestDefinition does not properly handle array of primitives for` in/out types
> -----------------------------------------------------------------------------
>
> Key: CAMEL-20732
> URL: https://issues.apache.org/jira/browse/CAMEL-20732
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 4.4.2
> Reporter: Stefan Kalscheuer
> Priority: Minor
> Fix For: 4.4.3, 4.6.0
>
>
> This is likely a regression from CAMEL-15199 (since 3.5.0).
> Using primitive array types as in/out type in REST route definition results
> in invalid string representation of the actual type.
>
> *History*
> Noticed on a project with Camel 4.4 including SpringDoc and a route with
> outType "byte[]".
> OpenAPI/Swagger output is completely broken (i.e. empty), apparently because
> the type "null[]" is not resolvable.
> The issue is still present in latest 4.6.0-SNAPSHOT and most likely since
> 3.5.0
>
> *Analysis*
> The workaround code introduced in the referenced issue contains this branch:
> {code:java}
> if (!classType.isPrimitive()) {
> if (classType.isArray()) {
> type = StringHelper.between(classType.getName(), "[L", ";") + "[]";
> } else {
> /* ...*/{code}
> Because byte[].class.getName() returns "[B" there is nothing betwen "[L" and
> ";", so the output is "null[]".
>
> *Example*
> {code:java}
> package my.example;
> public class MyRoutes extends org.apache.camel.builder.RouteBuilder {
> @Override
> public void configure() throws Exception {
> rest()
> .get("/test")
> .outType(byte[].class)
> .produces("application/octet-stream")
> .route()
> .log("test me");
> }
> } {code}
>
> *Workarounds*
> Use boxed type, e.g. Byte[] (which correctly results in "java.lang.Byte[]")
> or specify the type as String "byte[]" directly.
>
> *Solution*
> The solution seems pretty straight forward here. I will submit a proposal
--
This message was sent by Atlassian Jira
(v8.20.10#820010)