Repository: cayenne
Updated Branches:
  refs/heads/STABLE-4.0 4944e863d -> 21732820a


CAY-2435 cdbimport: procedure parameters are not imported


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

Branch: refs/heads/STABLE-4.0
Commit: 21732820a38c9d8c32b0b311b8edf53a320d91ff
Parents: 4944e86
Author: Nikita Timofeev <[email protected]>
Authored: Wed May 23 12:19:39 2018 +0300
Committer: Nikita Timofeev <[email protected]>
Committed: Wed May 23 12:19:39 2018 +0300

----------------------------------------------------------------------
 RELEASE-NOTES.txt                                     |  1 +
 .../dbsync/reverse/dbload/ProcedureColumnLoader.java  | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index c09f88b..6bdc143 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -16,6 +16,7 @@ Changes/New Features:
 
 Bug Fixes:
 
+CAY-2435 cdbimport: procedure parameters are not imported
 CAY-2436 NPE in CayenneRuntimeException constructor
 
 ----------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java
 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java
index f4096a1..31c6a73 100644
--- 
a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java
+++ 
b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java
@@ -58,8 +58,9 @@ public class ProcedureColumnLoader extends 
PerCatalogAndSchemaLoader {
         String procCatalog = rs.getString("PROCEDURE_CAT");
         String name = rs.getString("PROCEDURE_NAME");
         String key = Procedure.generateFullyQualifiedName(procCatalog, 
procSchema, name);
-        Procedure procedure = map.getProcedure(key);
-        if (procedure == null) {
+        Procedure procedure = map.getProcedure(name);
+        // should be filtered out in getResultSet() method, but check full 
name here too..
+        if (procedure == null || 
!key.equals(procedure.getFullyQualifiedName())) {
             return;
         }
 
@@ -80,7 +81,7 @@ public class ProcedureColumnLoader extends 
PerCatalogAndSchemaLoader {
             return null;
         }
 
-        if (columnName == null) {
+        if (columnName == null || columnName.isEmpty()) {
             if (type == DatabaseMetaData.procedureColumnReturn) {
                 LOGGER.debug("null column name, assuming result column: " + 
key);
                 columnName = "_return_value";
@@ -103,7 +104,10 @@ public class ProcedureColumnLoader extends 
PerCatalogAndSchemaLoader {
         }
 
         ProcedureParameter column = new ProcedureParameter(columnName);
-        column.setDirection(getDirection(type));
+        int direction = getDirection(type);
+        if(direction != -1) {
+            column.setDirection(direction);
+        }
         column.setType(columnType);
         column.setMaxLength(rs.getInt("LENGTH"));
         column.setPrecision(decimalDigits);
@@ -120,6 +124,8 @@ public class ProcedureColumnLoader extends 
PerCatalogAndSchemaLoader {
                 return ProcedureParameter.IN_OUT_PARAMETER;
             case DatabaseMetaData.procedureColumnOut:
                 return ProcedureParameter.OUT_PARAMETER;
+            case DatabaseMetaData.procedureColumnReturn:
+                return ProcedureParameter.OUT_PARAMETER;
             default:
                 return -1;
         }

Reply via email to