Hi

Yep its a little bug
https://issues.apache.org/jira/browse/CAMEL-7058

On Thu, Dec 5, 2013 at 12:05 PM, Dharmendra Patel
<[email protected]> wrote:
> Hi There,
> I think it is a bug.
> in org.apache.camel.component.sql.SqlProducer class code highlighted in
> red(line no 120) could be shifted to line no 92(highlighted in green).
>
>  else {
>                     boolean isResultSet = ps.execute();
>                     if (isResultSet) {
> * // preserve headers*
> *
> exchange.getOut().getHeaders().putAll(exchange.getIn().getHeaders());*
>                         ResultSet rs = ps.getResultSet();
>                         SqlOutputType outputType =
> getEndpoint().getOutputType();
>                         log.trace("Got result list from query: {},
> outputType={}", rs, outputType);
>                         if (outputType == SqlOutputType.SelectList) {
>                             List<Map<String, Object>> data =
> getEndpoint().queryForList(ps.getResultSet());
>                             // for noop=true we still want to enrich with
> the row count header
>                             if (getEndpoint().isNoop()) {
>
> exchange.getOut().setBody(exchange.getIn().getBody());
>                             } else {
>                                 exchange.getOut().setBody(data);
>                             }
>
> exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, data.size());
>                         } else if (outputType == SqlOutputType.SelectOne) {
>                             Object data =
> getEndpoint().queryForObject(ps.getResultSet());
>                             if (data != null) {
>                                 // for noop=true we still want to enrich
> with the row count header
>                                 if (getEndpoint().isNoop()) {
>
> exchange.getOut().setBody(exchange.getIn().getBody());
>                                 } else {
>                                     exchange.getOut().setBody(data);
>                                 }
>
> exchange.getOut().setHeader(SqlConstants.SQL_ROW_COUNT, 1);
>                             }
>                         } else {
>                             throw new IllegalArgumentException("Invalid
> outputType=" + outputType);
>                         }
>
>                       *  // preserve headers*
> *
> exchange.getOut().getHeaders().putAll(exchange.getIn().getHeaders());*
>                     } else {
>
> exchange.getIn().setHeader(SqlConstants.SQL_UPDATE_COUNT,
> ps.getUpdateCount());
>                     }
>                 }
>
>
> On Thu, Dec 5, 2013 at 2:10 PM, kuro <[email protected]> wrote:
>
>> Hi
>>
>> If SQL_ROW_COUNT header is already set,
>> SQL Component cannot change SQL_ROW_COUNT header value.
>>
>> from("direct:test")
>> .setHeader(SqlConstants.SQL_ROW_COUNT).constant(100000)
>> .to("sql:SELECT * FROM user WHERE FALSE")
>> .filter(header(SqlConstants.SQL_ROW_COUNT).isEqualTo(100000))
>> .to("log:NG");
>>
>>
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://camel.465427.n5.nabble.com/bug-sql-SQL-Component-cannot-change-SQL-ROW-COUNT-header-value-tp5744350.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to