Fix retrieval of parent logger in PoolingDataSourceBean
See gh-19637
This commit is contained in:
parent
b23b69fea3
commit
b7e69890f3
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2020 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -107,13 +107,16 @@ public class PoolingDataSourceBean extends PoolingDataSource implements BeanName
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
|
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
|
||||||
try {
|
XADataSource dataSource = this.dataSource;
|
||||||
return this.getParentLogger();
|
if (dataSource != null) {
|
||||||
}
|
try {
|
||||||
catch (Exception ex) {
|
return dataSource.getParentLogger();
|
||||||
// Work around https://jira.codehaus.org/browse/BTM-134
|
}
|
||||||
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
|
catch (Exception ex) {
|
||||||
|
// Swallow and continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2012-2019 the original author or authors.
|
* Copyright 2012-2020 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|
@ -17,6 +17,8 @@
|
||||||
package org.springframework.boot.jta.bitronix;
|
package org.springframework.boot.jta.bitronix;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLFeatureNotSupportedException;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import javax.sql.XAConnection;
|
import javax.sql.XAConnection;
|
||||||
import javax.sql.XADataSource;
|
import javax.sql.XADataSource;
|
||||||
|
|
@ -60,6 +62,28 @@ public class PoolingDataSourceBeanTests {
|
||||||
assertThat(this.bean.getUniqueName()).isEqualTo("un");
|
assertThat(this.bean.getUniqueName()).isEqualTo("un");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldReturnGlobalLoggerWhenDataSourceIsAbsent() throws SQLFeatureNotSupportedException {
|
||||||
|
assertThat(this.bean.getParentLogger()).isSameAs(Logger.getLogger(Logger.GLOBAL_LOGGER_NAME));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldReturnGlobalLoggerWhenDataSourceThrowsException() throws SQLFeatureNotSupportedException {
|
||||||
|
XADataSource dataSource = mock(XADataSource.class);
|
||||||
|
given(dataSource.getParentLogger()).willThrow(new SQLFeatureNotSupportedException());
|
||||||
|
this.bean.setDataSource(dataSource);
|
||||||
|
assertThat(this.bean.getParentLogger()).isSameAs(Logger.getLogger(Logger.GLOBAL_LOGGER_NAME));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldReturnParentLoggerFromDataSource() throws SQLFeatureNotSupportedException {
|
||||||
|
Logger logger = Logger.getLogger("test");
|
||||||
|
XADataSource dataSource = mock(XADataSource.class);
|
||||||
|
given(dataSource.getParentLogger()).willReturn(logger);
|
||||||
|
this.bean.setDataSource(dataSource);
|
||||||
|
assertThat(this.bean.getParentLogger()).isSameAs(logger);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void setDataSource() throws Exception {
|
public void setDataSource() throws Exception {
|
||||||
XADataSource dataSource = mock(XADataSource.class);
|
XADataSource dataSource = mock(XADataSource.class);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue