Repository: camel
Updated Branches:
  refs/heads/master b8ca2bac1 -> 2b56df5b1


CAMEL-7803

 Patch added new boolean flag "preFetched" to allow inserts with parameters 
that have null values


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9081ffac
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9081ffac
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9081ffac

Branch: refs/heads/master
Commit: 9081ffac08cace58cc1c7cd614eec50fc3317677
Parents: b8ca2ba
Author: nathanwray <[email protected]>
Authored: Thu Sep 11 11:57:09 2014 -0400
Committer: Willem Jiang <[email protected]>
Committed: Tue Sep 16 20:29:36 2014 +0800

----------------------------------------------------------------------
 .../DefaultJdbcPrepareStatementStrategy.java    | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9081ffac/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/DefaultJdbcPrepareStatementStrategy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/DefaultJdbcPrepareStatementStrategy.java
 
b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/DefaultJdbcPrepareStatementStrategy.java
index cceafae..b412ff2 100644
--- 
a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/DefaultJdbcPrepareStatementStrategy.java
+++ 
b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/DefaultJdbcPrepareStatementStrategy.java
@@ -72,22 +72,21 @@ public class DefaultJdbcPrepareStatementStrategy implements 
JdbcPrepareStatement
                 return new Iterator<Object>() {
                     private NamedQueryParser parser = new 
NamedQueryParser(query);
                     private Object next;
-                    private boolean done;
+                    private boolean done = false;
+                    private boolean preFetched = false;
 
                     @Override
                     public boolean hasNext() {
-                        if (done) {
-                            return false;
+                        if (!done && !preFetched) {
+                            next();
+                            preFetched = true;
                         }
-                        if (next == null) {
-                            next = next();
-                        }
-                        return next != null;
+                        return (!done);
                     }
 
                     @Override
                     public Object next() {
-                        if (next == null) {
+                        if (!preFetched) {
                             String key = parser.next();
                             if (key == null) {
                                 done = true;
@@ -100,9 +99,8 @@ public class DefaultJdbcPrepareStatementStrategy implements 
JdbcPrepareStatement
                             }
                             next = headerMap.get(key);
                         }
-                        Object answer = next;
-                        next = null;
-                        return answer;
+                        preFetched = false;
+                        return next;
                     }
 
                     @Override

Reply via email to