simonbence commented on a change in pull request #5003:
URL: https://github.com/apache/nifi/pull/5003#discussion_r614092555



##########
File path: 
nifi-nar-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java
##########
@@ -460,45 +455,21 @@ public void onConfigured(final ConfigurationContext 
context) throws Initializati
         });
     }
 
-    private Long extractMillisWithInfinite(PropertyValue prop) {
-        return "-1".equals(prop.getValue()) ? -1 : 
prop.asTimePeriod(TimeUnit.MILLISECONDS);
+    private Driver getDriver(final String driverName, final String url) {
+        try {
+            final Class<?> clazz = Class.forName(driverName);
+            final Driver driver = DriverManager.getDriver(url);
+
+            return (driver == null)

Review comment:
       Your concerns are valid, however it is hard to determine if the 
`SQLException` comes due to the driver implementation is not registering the 
driver instance as it is expected or because of the URL is incorrect. In both 
cases, the manager will not be able to return with a driver. But, as I said 
your concerns are valid, so I will go with the following implementation:
   
   1. Checking if `DriverManager.getDriver() `returns with a driver. If yes, we 
will use that.
   2. In case of `SQLException`, we try to remediate the situation with 
explicitly creating AND registering a driver instance
   3. We try with `getDriver()` again. If it returns with a driver we can use 
that. Otherwise, if even after explicitly registering a driver, there is no 
sufficient one to return, then it is safe to assume that the URL is not 
supported by the driver.
   
   I go with this, I hope this also covers your expectations




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to