Fixes for parameterized sql queries 28/91628/1
authorPatrick Brady <patrick.brady@att.com>
Wed, 17 Jul 2019 20:22:35 +0000 (13:22 -0700)
committerPatrick Brady <patrick.brady@att.com>
Wed, 17 Jul 2019 20:22:39 +0000 (13:22 -0700)
The old non-parameterized queries would treat null entries in the SvcLogicContext
as "null" string values. The parameterized query treats these as NULL sql values.
This change keeps those values as "null" strings.

Change-Id: Iee7f7a1861bdd82dc65d59db2be7862b49cf1207
Signed-off-by: Patrick Brady <patrick.brady@att.com>
Issue-ID: APPC-1639

appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/CtxParameterizedResolver.java
appc-inbound/appc-artifact-handler/provider/src/main/java/org/onap/appc/artifact/handler/dbservices/DBService.java

index d44ba06..344463c 100644 (file)
@@ -79,7 +79,8 @@ public class CtxParameterizedResolver {
             if (term != null) {
                 term = term.replaceAll("'", "''");
             }
-            arguments.add(term);
+            //valueOf will store null values as a String "null"
+            arguments.add(String.valueOf(term));
             return "?";
         } else {
             return (term);
index 471b0b0..4f1df9b 100644 (file)
@@ -104,6 +104,7 @@ public class DBService {
         if (dblib != null && ctx != null) {
             String key = "select max(ASDC_ARTIFACTS_ID) as id from ASDC_ARTIFACTS  WHERE ARTIFACT_NAME = ?";
             ArrayList<String> arguments = new ArrayList<>();
+            arguments.add(artifactName);
             log.info("Getting Artifact ID String :" + key);
             status = dblib.query(key, ctx, arguments);
             if (status.toString().equals(FAILURE_PARAM)) {