Merge branch 'gh-4082'

This commit is contained in:
Andy Wilkinson 2015-10-06 09:58:06 +01:00
commit 45cad3c3b7

View File

@ -39,6 +39,7 @@ import org.springframework.util.StringUtils;
* @author Dave Syer
* @author Maciej Walkowiak
* @author Stephane Nicoll
* @author Benedikt Ritter
* @since 1.1.0
*/
@ConfigurationProperties(prefix = DataSourceProperties.PREFIX)
@ -161,8 +162,8 @@ public class DataSourceProperties implements BeanClassLoaderAware, EnvironmentAw
public String getDriverClassName() {
if (StringUtils.hasText(this.driverClassName)) {
Assert.state(ClassUtils.isPresent(this.driverClassName, null),
"Cannot load driver class: " + this.driverClassName);
Assert.state(driverClassIsLoadable(), "Cannot load driver class: "
+ this.driverClassName);
return this.driverClassName;
}
String driverClassName = null;
@ -182,6 +183,20 @@ public class DataSourceProperties implements BeanClassLoaderAware, EnvironmentAw
return driverClassName;
}
private boolean driverClassIsLoadable() {
try {
ClassUtils.forName(this.driverClassName, null);
return true;
}
catch (UnsupportedClassVersionError ex) {
// Driver library has been compiled with a later JDK, propagate error
throw ex;
}
catch (Throwable ex) {
return false;
}
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}