You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Bernd Kolb (JIRA)" <ji...@apache.org> on 2007/05/15 10:33:16 UTC
[jira] Updated: (DBCP-214) Basic datasource should respect the
context classloader
[ https://issues.apache.org/jira/browse/DBCP-214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bernd Kolb updated DBCP-214:
----------------------------
Attachment: BasicDataSource.java
Version: 1.2.2
Class: org.apache.commons.dbcp.BasicDataSouce
Method: protected synchronized DataSource createDataSource() (changes made between //### START CHANGE ### and //### END CHANGE ###
Changed code:
//### START CHANGE ###
Class driverFromCCL = null;
if (driverClassName != null) {
try {
try {
Class.forName(driverClassName);
}catch (ClassNotFoundException e) {
driverFromCCL = Thread.currentThread().getContextClassLoader().loadClass(driverClassName);
}
} catch (Throwable t) {
String message = "Cannot load JDBC driver class '" +
driverClassName + "'";
logWriter.println(message);
t.printStackTrace(logWriter);
throw new SQLNestedException(message, t);
}
}
// Create a JDBC driver instance
Driver driver = null;
try {
if (driverFromCCL!= null) {
// Usage of drivermanager is not possible, as it does not respect the ContextClassLoader
driver = (Driver) driverFromCCL.newInstance();
if (!driver.acceptsURL(url)) {
new SQLException("No suitable driver", "08001");
}
}else {
driver = DriverManager.getDriver(url);
}
//### END CHANGE ###
If you need more information, please let me know
Cheers,
Bernd
> Basic datasource should respect the context classloader
> -------------------------------------------------------
>
> Key: DBCP-214
> URL: https://issues.apache.org/jira/browse/DBCP-214
> Project: Commons Dbcp
> Issue Type: Bug
> Affects Versions: 1.2.2
> Reporter: Bernd Kolb
> Fix For: 1.3
>
> Attachments: BasicDataSource.java
>
>
> I tried to use DBCP in an OSGi environment. This this not possible at the moment, as OSGi uses different classloaders and DBCP does not respect this.
> The easiest way to solve this problem would be to use the contextclassloader in case of a ClassNotFoundException
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org