Catch exception in case of connection to database failed during activation of servive (#12313)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
parent
3b0c2ca19f
commit
187937fbd1
@ -12,6 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.openhab.persistence.jdbc.internal;
|
package org.openhab.persistence.jdbc.internal;
|
||||||
|
|
||||||
|
import java.sql.SQLInvalidAuthorizationSpecException;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -34,6 +35,8 @@ import org.openhab.persistence.jdbc.dto.JdbcPersistenceItemInfo;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.zaxxer.hikari.pool.HikariPool.PoolInitializationException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mapper class
|
* Mapper class
|
||||||
*
|
*
|
||||||
@ -203,13 +206,24 @@ public class JdbcMapper {
|
|||||||
/***********************
|
/***********************
|
||||||
* DATABASE CONNECTION *
|
* DATABASE CONNECTION *
|
||||||
***********************/
|
***********************/
|
||||||
|
@SuppressWarnings("null")
|
||||||
protected boolean openConnection() {
|
protected boolean openConnection() {
|
||||||
logger.debug("JDBC::openConnection isDriverAvailable: {}", conf.isDriverAvailable());
|
logger.debug("JDBC::openConnection isDriverAvailable: {}", conf.isDriverAvailable());
|
||||||
if (conf.isDriverAvailable() && !conf.isDbConnected()) {
|
if (conf.isDriverAvailable() && !conf.isDbConnected()) {
|
||||||
logger.info("JDBC::openConnection: Driver is available::Yank setupDataSource");
|
logger.info("JDBC::openConnection: Driver is available::Yank setupDataSource");
|
||||||
|
try {
|
||||||
Yank.setupDefaultConnectionPool(conf.getHikariConfiguration());
|
Yank.setupDefaultConnectionPool(conf.getHikariConfiguration());
|
||||||
conf.setDbConnected(true);
|
conf.setDbConnected(true);
|
||||||
return true;
|
return true;
|
||||||
|
} catch (PoolInitializationException e) {
|
||||||
|
if (e.getCause() instanceof SQLInvalidAuthorizationSpecException) {
|
||||||
|
logger.warn("JDBC::openConnection: failed to open connection: {}", e.getCause().getMessage());
|
||||||
|
} else {
|
||||||
|
logger.warn("JDBC::openConnection: failed to open connection: {}", e.getMessage());
|
||||||
|
}
|
||||||
|
initialized = false;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else if (!conf.isDriverAvailable()) {
|
} else if (!conf.isDriverAvailable()) {
|
||||||
logger.warn("JDBC::openConnection: no driver available!");
|
logger.warn("JDBC::openConnection: no driver available!");
|
||||||
initialized = false;
|
initialized = false;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user