Thomas Bender created CAMEL-9805:
------------------------------------
Summary: camel-sql - body not copied from in to out when useing
outputHeader and outputType=SelectOne when sql doesn't return a result
Key: CAMEL-9805
URL: https://issues.apache.org/jira/browse/CAMEL-9805
Project: Camel
Issue Type: Bug
Components: camel-sql
Affects Versions: 2.17.0
Reporter: Thomas Bender
When using the options outputHeader and outputType=SelectOne the body of the
Exchange is not copied from in to out when the select returns no data..
Probably root is line 175-185 of SqlProducer.java that is missing an else for
the above mentioned case.
{code}
if (data != null) { // <--- Missing the else
// for noop=true we still want to enrich with the row count header
if (getEndpoint().isNoop()) {
exchange.getOut().setBody(exchange.getIn().getBody());
} else if (getEndpoint().getOutputHeader() != null) {
exchange.getOut().setBody(exchange.getIn().getBody());
exchange.getOut().setHeader(getEndpoint().getOutputHeader(), data);
} else {
exchange.getOut().setBody(data);
}
exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, 1);
}
{code}
following could be added (untested)
{code}
else { // if data == null
if (getEndpoint().isNoop()) {
exchange.getOut().setBody(exchange.getIn().getBody());
} else if (getEndpoint().getOutputHeader()
!= null) {
exchange.getOut().setBody(exchange.getIn().getBody());
}
exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, 0);
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)