Commit e87ed08e authored by Stephane Nicoll's avatar Stephane Nicoll

Merge pull request #19637 from nosan

* pr/19637:
  Fix retrieval of parent logger in PoolingDataSourceBean

Closes gh-19637
parents b23b69fe b7e69890
/* /*
* 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 ...@@ -107,13 +107,16 @@ public class PoolingDataSourceBean extends PoolingDataSource implements BeanName
@Override @Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException { public Logger getParentLogger() throws SQLFeatureNotSupportedException {
XADataSource dataSource = this.dataSource;
if (dataSource != null) {
try { try {
return this.getParentLogger(); return dataSource.getParentLogger();
} }
catch (Exception ex) { catch (Exception ex) {
// Work around https://jira.codehaus.org/browse/BTM-134 // Swallow and continue
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); }
} }
return Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
} }
/** /**
......
/* /*
* 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 @@ ...@@ -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 { ...@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment