[ 
https://issues.apache.org/jira/browse/CAMEL-26146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-26146:
-----------------------------------

    Assignee: Claus Ibsen

> camel-jooq - operation=consume is listed but does not exist, and an empty 
> body inserts an empty record or fails with NoSuchMethodException
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26146
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26146
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jooq
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of jooq (CAMEL-24961, PR #28393).
> h4. 1. The catalog lists operation CONSUME, but JooqOperation has no such 
> value
> {{JooqConfiguration}} (main 2a465aa4814c, line 32) declares {{enums = 
> "NONE,EXECUTE,FETCH,CONSUME"}}, while {{JooqOperation}} (lines 20-22) has 
> only EXECUTE, FETCH and NONE. So the catalog and the docs offer 
> {{operation=consume}}, and an endpoint with it fails to be created. Checked 
> on 4.24.0-SNAPSHOT with HSQLDB.
> Proposed: remove CONSUME from the enums (the consumer is used through 
> {{from}}, not through the operation).
> h4. 2. Operation NONE with no body inserts an empty record
> When the body is null, the producer expression in 
> {{JooqEndpoint.createProducerExpression}} (main 2a465aa4814c, line 97) 
> creates a new instance of the entity type, and {{JooqProducer.process}} (line 
> 80) stores it with {{batchStore}}. So a message with no body inserts an empty 
> record, with no error. Checked on 4.24.0-SNAPSHOT with HSQLDB.
> Proposed: fail with a clear message when the body is null for operation NONE.
> h4. 3. EXECUTE or FETCH with no body and no query option fails with 
> NoSuchMethodException
> The same code (line 97) calls {{getInjector().newInstance(Query.class)}} or 
> {{newInstance(ResultQuery.class)}}, which are interfaces, so the call fails 
> with {{NoSuchMethodException: org.jooq.Query.<init>()}} instead of saying 
> what is missing. Checked on 4.24.0-SNAPSHOT with HSQLDB.
> Proposed: fail with a message that a Query in the body or the {{query}} 
> option is required.
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to