Ignore drop script failure in initialisation (to accommodate DB platforms that don't allow tests for tables existence in SQL).

This commit is contained in:
dsyer
2007-12-12 22:07:14 +00:00
parent cf4a2832a9
commit 6e8cb97ef8

View File

@@ -26,6 +26,7 @@ import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.beans.factory.config.AbstractFactoryBean;
import org.springframework.core.io.Resource;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionStatus;
@@ -112,7 +113,15 @@ public class InitializingDataSourceFactoryBean extends AbstractFactoryBean {
for (int i = 0; i < scripts.length; i++) {
String script = scripts[i].trim();
if (StringUtils.hasText(script)) {
jdbcTemplate.execute(script);
try {
jdbcTemplate.execute(script);
} catch (DataAccessException e) {
if (script.toLowerCase().startsWith("drop")) {
logger.debug("DROP script failed (ignoring): "+script);
} else {
throw e;
}
}
}
}
return null;