You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Thomas Bender (JIRA)" <ji...@apache.org> on 2016/04/04 08:24:25 UTC

[jira] [Created] (CAMEL-9805) camel-sql - body not copied from in to out when useing outputHeader and outputType=SelectOne when sql doesn't return a result

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)