Federico Mariani created CAMEL-24045:
----------------------------------------

             Summary: camel-sql - Connection leak with outputType=StreamList 
when the statement is not a query
                 Key: CAMEL-24045
                 URL: https://issues.apache.org/jira/browse/CAMEL-24045
             Project: Camel
          Issue Type: Bug
          Components: camel-sql
            Reporter: Federico Mariani
            Assignee: Federico Mariani


SqlProducer.processStreamList() obtains a raw connection from the DataSource so 
it can stay open while the exchange is routed. When 
{{PreparedStatement.execute()}} returns false (INSERT/UPDATE/DELETE/DDL), the 
result-set branch is skipped: no {{ResultSetIteratorCompletion}} is registered 
and neither the connection nor the statement is ever closed (the catch block 
only closes on exception).

The executed SQL can vary per exchange via the {{CamelSqlQuery}} header or 
{{useMessageBodyForSql=true}}, so each such exchange leaks one pooled 
connection, eventually exhausting the pool. Reproduced with a 
connection-counting DataSource: one connection remains open after the exchange 
completes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to