This is an automated email from the ASF dual-hosted git repository.

pvillard pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 32cbce652b NIFI-15458 Fixed SnowflakeComputingConnectionPool's 
Password property
32cbce652b is described below

commit 32cbce652be5dfcfbec66ff6844e85e6c1a9d9d8
Author: Peter Turcsanyi <[email protected]>
AuthorDate: Mon Jan 12 17:12:23 2026 +0100

    NIFI-15458 Fixed SnowflakeComputingConnectionPool's Password property
    
    Restored the common Password property as non-dependent and defined a new 
one for implementations having multiple Password Sources.
    Also improved the evaluation of Password Source property using isSet() 
because getProperty() returns a dummy PropertyValue instead of null.
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #10761.
---
 .../main/java/org/apache/nifi/dbcp/AbstractDBCPConnectionPool.java  | 2 +-
 .../src/main/java/org/apache/nifi/dbcp/utils/DBCPProperties.java    | 4 ++++
 .../src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java      | 6 +++---
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/AbstractDBCPConnectionPool.java
 
b/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/AbstractDBCPConnectionPool.java
index 013cf40a7a..439f917e10 100644
--- 
a/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/AbstractDBCPConnectionPool.java
+++ 
b/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/AbstractDBCPConnectionPool.java
@@ -240,7 +240,7 @@ public abstract class AbstractDBCPConnectionPool extends 
AbstractControllerServi
 
     protected DatabasePasswordProvider getDatabasePasswordProvider(final 
ConfigurationContext context) {
         final PropertyValue passwordSourceProperty = 
context.getProperty(PASSWORD_SOURCE);
-        final boolean databasePasswordProviderSelected = 
passwordSourceProperty != null
+        final boolean databasePasswordProviderSelected = 
passwordSourceProperty != null && passwordSourceProperty.isSet()
                 && 
PASSWORD_PROVIDER.getValue().equals(passwordSourceProperty.getValue());
 
         if (!databasePasswordProviderSelected) {
diff --git 
a/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/utils/DBCPProperties.java
 
b/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/utils/DBCPProperties.java
index 5d99f13226..6dd27cd903 100644
--- 
a/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/utils/DBCPProperties.java
+++ 
b/nifi-extension-bundles/nifi-extension-utils/nifi-dbcp-base/src/main/java/org/apache/nifi/dbcp/utils/DBCPProperties.java
@@ -81,6 +81,10 @@ public final class DBCPProperties {
             .sensitive(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
+            .build();
+
+    public static final PropertyDescriptor DB_PASSWORD_WITH_PASSWORD_SOURCE = 
new PropertyDescriptor.Builder()
+            .fromPropertyDescriptor(DB_PASSWORD)
             .dependsOn(PASSWORD_SOURCE, PasswordSource.PASSWORD)
             .build();
 
diff --git 
a/nifi-extension-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java
 
b/nifi-extension-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java
index 94de76c0c2..990f6c1c19 100644
--- 
a/nifi-extension-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java
+++ 
b/nifi-extension-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java
@@ -56,8 +56,8 @@ import java.util.stream.Collectors;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.DATABASE_URL;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.DB_DRIVERNAME;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.DB_DRIVER_LOCATION;
-import static org.apache.nifi.dbcp.utils.DBCPProperties.DB_PASSWORD;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.DB_PASSWORD_PROVIDER;
+import static 
org.apache.nifi.dbcp.utils.DBCPProperties.DB_PASSWORD_WITH_PASSWORD_SOURCE;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.DB_USER;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.EVICTION_RUN_PERIOD;
 import static org.apache.nifi.dbcp.utils.DBCPProperties.KERBEROS_USER_SERVICE;
@@ -115,7 +115,7 @@ public class DBCPConnectionPool extends 
AbstractDBCPConnectionPool implements DB
         KERBEROS_USER_SERVICE,
         DB_USER,
         PASSWORD_SOURCE,
-        DB_PASSWORD,
+        DB_PASSWORD_WITH_PASSWORD_SOURCE,
         DB_PASSWORD_PROVIDER,
         MAX_WAIT_TIME,
         MAX_TOTAL_CONNECTIONS,
@@ -163,7 +163,7 @@ public class DBCPConnectionPool extends 
AbstractDBCPConnectionPool implements DB
         final PropertyValue passwordSourceProperty = 
context.getProperty(PASSWORD_SOURCE);
         final String passwordSource = passwordSourceProperty == null ? 
PASSWORD.getValue() : passwordSourceProperty.getValue();
         final boolean passwordProviderSelected = 
PASSWORD_PROVIDER.getValue().equals(passwordSource);
-        final String password = passwordProviderSelected ? null : 
context.getProperty(DB_PASSWORD).evaluateAttributeExpressions().getValue();
+        final String password = passwordProviderSelected ? null : 
context.getProperty(DB_PASSWORD_WITH_PASSWORD_SOURCE).evaluateAttributeExpressions().getValue();
         final Integer maxTotal = 
context.getProperty(MAX_TOTAL_CONNECTIONS).evaluateAttributeExpressions().asInteger();
         final String validationQuery = 
context.getProperty(VALIDATION_QUERY).evaluateAttributeExpressions().getValue();
         final Long maxWaitMillis = 
extractMillisWithInfinite(context.getProperty(MAX_WAIT_TIME).evaluateAttributeExpressions());

Reply via email to