[
https://issues.apache.org/jira/browse/CAMEL-26124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18136532#comment-18136532
]
Claus Ibsen commented on CAMEL-26124:
-------------------------------------
PR: https://github.com/apache/camel/pull/28900
A missing outputFieldsIdx now means all parameters are input. The body is read
with getMandatoryBody(Object[].class), so a List is converted and other bodies
fail with an InvalidPayloadException.
_Claude Code on behalf of Claus Ibsen (davsclaus)_
> camel-jt400 - a program call without outputFieldsIdx fails with a
> NullPointerException, and a List body fails with a ClassCastException
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-26124
> URL: https://issues.apache.org/jira/browse/CAMEL-26124
> Project: Camel
> Issue Type: Bug
> Components: camel-jt400
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.24.0
>
>
> Found while adding the catalog body types of smb, jt400 and jcr (CAMEL-24961,
> PR #28417).
> h4. 1. A program call without outputFieldsIdx fails with a
> NullPointerException
> {{Jt400PgmProducer.getParameterList}} (main 2a465aa4814c, line 115) calls
> {{isFieldIdxForOuput(i)}} for every parameter, and
> {{Jt400Endpoint.isFieldIdxForOuput}} (line 251) calls
> {{Arrays.binarySearch(getOutputFieldsIdxArray(), idx)}}, which throws a
> NullPointerException when {{outputFieldsIdx}} is not set. A program call with
> only input parameters cannot work. Checked on 4.24.0-SNAPSHOT by building the
> program parameter list (no IBM i).
> Proposed: treat a missing {{outputFieldsIdx}} as no output fields.
> h4. 2. A List body for a program call fails with a raw ClassCastException
> The producer casts the body to {{Object[]}} ({{Jt400PgmProducer}}, main
> 2a465aa4814c, lines 107 and 182), so a {{List}} body (a natural choice in a
> route) fails with a ClassCastException instead of being used or rejected with
> a clear error. Checked on 4.24.0-SNAPSHOT by building the program parameter
> list (no IBM i).
> Proposed: use {{getMandatoryBody(Object[].class)}} (a List converts) so other
> bodies fail with an InvalidPayloadException.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)