diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java index 461012d8..4f17ac1c 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.cloud.openfeign; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Timer; @@ -29,6 +30,8 @@ import feign.Feign; import feign.httpclient.ApacheHttpClient; import feign.okhttp.OkHttpClient; import okhttp3.ConnectionPool; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.config.RegistryBuilder; @@ -63,6 +66,8 @@ import org.springframework.context.annotation.Import; @Import(DefaultGzipDecoderConfiguration.class) public class FeignAutoConfiguration { + private static final Log LOG = LogFactory.getLog(FeignAutoConfiguration.class); + @Autowired(required = false) private List configurations = new ArrayList<>(); @@ -163,10 +168,17 @@ public class FeignAutoConfiguration { } @PreDestroy - public void destroy() throws Exception { + public void destroy() { this.connectionManagerTimer.cancel(); if (this.httpClient != null) { - this.httpClient.close(); + try { + this.httpClient.close(); + } + catch (IOException e) { + if (LOG.isErrorEnabled()) { + LOG.error("Could not correctly close httpClient."); + } + } } } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/clientconfig/HttpClientFeignConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/clientconfig/HttpClientFeignConfiguration.java index c5ae09fd..a3164469 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/clientconfig/HttpClientFeignConfiguration.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/clientconfig/HttpClientFeignConfiguration.java @@ -16,11 +16,14 @@ package org.springframework.cloud.openfeign.clientconfig; +import java.io.IOException; import java.util.Timer; import java.util.TimerTask; import javax.annotation.PreDestroy; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.http.client.config.RequestConfig; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.HttpClientConnectionManager; @@ -48,6 +51,8 @@ import org.springframework.context.annotation.Configuration; @ConditionalOnMissingBean(CloseableHttpClient.class) public class HttpClientFeignConfiguration { + private static final Log LOG = LogFactory.getLog(HttpClientFeignConfiguration.class); + private final Timer connectionManagerTimer = new Timer( "FeignApacheHttpClientConfiguration.connectionManagerTimer", true); @@ -113,10 +118,17 @@ public class HttpClientFeignConfiguration { } @PreDestroy - public void destroy() throws Exception { + public void destroy() { this.connectionManagerTimer.cancel(); if (this.httpClient != null) { - this.httpClient.close(); + try { + this.httpClient.close(); + } + catch (IOException e) { + if (LOG.isErrorEnabled()) { + LOG.error("Could not correctly close httpClient."); + } + } } }