Когда я вызываю метод heathIndicator.health()
, когда база данных не работает, он выдает NullPointerException
.Трассировка стека показывает, что logger
объект в AbstractHealthIndicator равен нулю.Я также проверил это с помощью отладки.Код работает без проблем, когда база данных работает, потому что регистратор не вызывается.Я не совсем понял, почему это может произойти.
Это код health
метода Spring AbstractHealthIndicator
@Override
public final Health health() {
Health.Builder builder = new Health.Builder();
try {
doHealthCheck(builder);
}
catch (Exception ex) {
// null pointer exception happens here, logger is null.
if (this.logger.isWarnEnabled()) {
String message = this.healthCheckFailedMessage.apply(ex);
this.logger.warn(StringUtils.hasText(message) ? message : DEFAULT_MESSAGE,
ex);
}
builder.down(ex);
}
return builder.build();
}