Author: markt Date: Mon Dec 21 17:15:41 2009 New Revision: 892887 URL: http://svn.apache.org/viewvc?rev=892887&view=rev Log: Only unload JDBC drivers this web app loaded.
Modified: tomcat/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java Modified: tomcat/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java?rev=892887&r1=892886&r2=892887&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java (original) +++ tomcat/trunk/java/org/apache/catalina/loader/JdbcLeakPrevention.java Mon Dec 21 17:15:41 2009 @@ -38,23 +38,16 @@ */ public class JdbcLeakPrevention { - /* - * This driver is visible to all classloaders but is loaded by the system - * class loader so there is no need to unload it. - */ - private static final String JDBC_ODBC_BRIDGE_DRIVER = - "sun.jdbc.odbc.JdbcOdbcDriver"; - public List<String> clearJdbcDriverRegistrations() throws SQLException { List<String> driverNames = new ArrayList<String>(); - - // Unregister any JDBC drivers loaded by the class loader that loaded - // this class - ie the webapp class loader + + // This will list all drivers visible to this class loader Enumeration<Driver> drivers = DriverManager.getDrivers(); while (drivers.hasMoreElements()) { Driver driver = drivers.nextElement(); - if (JDBC_ODBC_BRIDGE_DRIVER.equals( - driver.getClass().getCanonicalName())) { + // Only unload the drivers this web app loaded + if (driver.getClass().getClassLoader() != + this.getClass().getClassLoader()) { continue; } driverNames.add(driver.getClass().getCanonicalName()); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org