Repository: cayenne
Updated Branches:
  refs/heads/STABLE-4.0 01e7586a4 -> ef5a86c18


CAY-2364 Wrong logging in SQLTemplate


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

Branch: refs/heads/STABLE-4.0
Commit: ef5a86c18bfc32c4ce854596101a5c3b42271fcb
Parents: 01e7586
Author: Nikita Timofeev <stari...@gmail.com>
Authored: Mon Oct 2 14:33:47 2017 +0300
Committer: Nikita Timofeev <stari...@gmail.com>
Committed: Mon Oct 2 14:33:47 2017 +0300

----------------------------------------------------------------------
 .../cayenne/access/jdbc/SQLTemplateAction.java  | 37 +++++++++++---------
 docs/doc/src/main/resources/RELEASE-NOTES.txt   |  8 +++++
 2 files changed, 29 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ef5a86c1/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
index 8d9cf65..1dfb1a8 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
@@ -25,7 +25,6 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
@@ -51,7 +50,6 @@ import org.apache.cayenne.query.QueryMetadata;
 import org.apache.cayenne.query.SQLAction;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.util.Util;
-import org.apache.commons.collections.IteratorUtils;
 
 /**
  * Implements a strategy for execution of SQLTemplates.
@@ -125,12 +123,25 @@ public class SQLTemplateAction implements SQLAction {
                callback.nextBatchCount(query, ints);
        }
 
+       private void bindExtendedTypes(ParameterBinding[] bindings) {
+               int i = 1;
+               for (ParameterBinding binding : bindings) {
+                       Object value = binding.getValue();
+                       ExtendedType extendedType = value != null
+                                       ? 
getAdapter().getExtendedTypes().getRegisteredType(value.getClass())
+                                       : 
getAdapter().getExtendedTypes().getDefaultType();
+                       binding.setExtendedType(extendedType);
+                       binding.setStatementPosition(i++);
+               }
+       }
+
        private void runWithPositionalParameters(Connection connection, 
OperationObserver callback, String template,
                        Collection<Number> counts, boolean loggable) throws 
Exception {
 
                SQLStatement compiled = 
dataNode.getSqlTemplateProcessor().processTemplate(template,
                                query.getPositionalParams());
 
+               bindExtendedTypes(compiled.getBindings());
                if (loggable) {
                        
dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), 
compiled.getBindings());
                }
@@ -150,11 +161,12 @@ public class SQLTemplateAction implements SQLAction {
                // for now supporting deprecated batch parameters...
                @SuppressWarnings("unchecked")
                Iterator<Map<String, ?>> it = (size > 0) ? 
query.parametersIterator()
-                               : 
IteratorUtils.singletonIterator(Collections.emptyMap());
+                               : 
(Iterator)Collections.singleton(Collections.emptyMap()).iterator();
                for (int i = 0; i < batchSize; i++) {
                        Map<String, ?> nextParameters = it.next();
 
                        SQLStatement compiled = 
dataNode.getSqlTemplateProcessor().processTemplate(template, nextParameters);
+                       bindExtendedTypes(compiled.getBindings());
 
                        if (loggable) {
                                
dataNode.getJdbcEventLogger().logQuery(compiled.getSql(), 
compiled.getBindings());
@@ -303,12 +315,12 @@ public class SQLTemplateAction implements SQLAction {
                }
 
                switch (query.getColumnNamesCapitalization()) {
-               case LOWER:
-                       builder.useLowercaseColumnNames();
-                       break;
-               case UPPER:
-                       builder.useUppercaseColumnNames();
-                       break;
+                       case LOWER:
+                               builder.useLowercaseColumnNames();
+                               break;
+                       case UPPER:
+                               builder.useUppercaseColumnNames();
+                               break;
                }
 
                return builder;
@@ -334,14 +346,7 @@ public class SQLTemplateAction implements SQLAction {
        protected void bind(PreparedStatement preparedStatement, 
ParameterBinding[] bindings)
                        throws SQLException, Exception {
                // bind parameters
-               int i = 1;
                for (ParameterBinding binding : bindings) {
-                       Object value = binding.getValue();
-                       ExtendedType extendedType = value != null
-                                       ? 
getAdapter().getExtendedTypes().getRegisteredType(value.getClass())
-                                       : 
getAdapter().getExtendedTypes().getDefaultType();
-                       binding.setExtendedType(extendedType);
-                       binding.setStatementPosition(i++);
                        dataNode.getAdapter().bindParameter(preparedStatement, 
binding);
                }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ef5a86c1/docs/doc/src/main/resources/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/docs/doc/src/main/resources/RELEASE-NOTES.txt 
b/docs/doc/src/main/resources/RELEASE-NOTES.txt
index 12df4b4..0adaf89 100644
--- a/docs/doc/src/main/resources/RELEASE-NOTES.txt
+++ b/docs/doc/src/main/resources/RELEASE-NOTES.txt
@@ -8,6 +8,14 @@ To browse individual bug reports check out project issue 
tracker:
 https://issues.apache.org/jira/browse/CAY
 
 ----------------------------------
+Release: 4.0.B3
+Date:
+----------------------------------
+Bug Fixes:
+
+CAY-2364 Wrong logging in SQLTemplate
+
+----------------------------------
 Release: 4.0.B2
 Date:
 ----------------------------------

Reply via email to