You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2014/02/27 21:58:21 UTC

[jira] [Commented] (CAMEL-7251) SqlProducer call twice the getResultSet on the PreparedStatement => This cause issue with HSQLDB (NPE)

    [ https://issues.apache.org/jira/browse/CAMEL-7251?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13915039#comment-13915039 ] 

ASF GitHub Bot commented on CAMEL-7251:
---------------------------------------

GitHub user boretti opened a pull request:

    https://github.com/apache/camel/pull/104

    CAMEL-7251 SqlProducer call twice the getResultSet on the PreparedStatement => This cause issue with HSQLDB (NPE)

    According https://issues.apache.org/jira/browse/CAMEL-7251

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/boretti/camel camel-7251

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/camel/pull/104.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #104
    
----
commit e44f258a2f4fac85dcb67c48a9dc9ae129aa87e8
Author: boretti <ma...@gmail.com>
Date:   2014-02-27T20:56:04Z

    SqlProducer call twice the getResultSet on the PreparedStatement => This
    cause issue with HSQLDB (NPE)

----


> SqlProducer call twice the getResultSet on the PreparedStatement => This cause issue with HSQLDB (NPE)
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-7251
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7251
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-sql
>    Affects Versions: 2.12.3
>            Reporter: Mathieu Boretti
>
> The SqlProducer class use the following lines of code :
> 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());
>                            .................................
>                         } else if (outputType == SqlOutputType.SelectOne) {
>                             Object data = getEndpoint().queryForObject(ps.getResultSet());
>                             .................................
>                         } else {
>                             throw new IllegalArgumentException("Invalid outputType=" + outputType);
>                         }
> The problem is that the ResultSet is retrieved at the start, and then only used for the log. Later, when the result set is required, a new call to getResultSet is done. It is an issue with HSQL DB (tested with version 2.3.0 and 2.3.2 of HSQL DB), which in this case return null for the second call.
> As the ResultSet is already available in a variable "rs", I would recommand to use this variable to replace the two last call to ps.getResultSet().
> Thanks



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)