exceptionfactory commented on code in PR #10693:
URL: https://github.com/apache/nifi/pull/10693#discussion_r2653227550
##########
nifi-extension-bundles/nifi-standard-services/nifi-dbcp-service-bundle/nifi-dbcp-service/src/main/java/org/apache/nifi/dbcp/DBCPConnectionPool.java:
##########
@@ -262,14 +262,21 @@ protected Driver getDriver(final String driverName, final
String url) {
}
try {
- return DriverManager.getDriver(url);
+ final Driver driver = DriverManager.getDriver(url);
+ // Ensure drivers that register themselves during class loading
can be set as the registeredDriver.
+ // This ensures drivers that register themselves can be
deregisterd when the componet is removed.
+ // These drivers should be loaded in the same InstanceClassloader
that load this component
+ if (driver != registeredDriver
+ &&
driver.getClass().getClassLoader().equals(getClass().getClassLoader())) {
Review Comment:
I agree the cost of the check is low, the main concern is clarity or reason
for implementation. Logging a warning seems like a good option, although it may
be difficult to describe it clearly and succinctly, perhaps something like
`ClassLoader conflict found: Managed Driver [{}] does not match Registered
Driver [{}]`.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]