Polish ReactorResourceFactory

This commit is contained in:
Rossen Stoyanchev
2018-08-14 17:34:17 +03:00
parent 7a0c03e05e
commit 3e4d305291
2 changed files with 19 additions and 5 deletions

View File

@@ -143,11 +143,25 @@ public class ReactorResourceFactory implements InitializingBean, DisposableBean
@Override
public void destroy() {
Assert.notNull(this.connectionProvider, "No ConnectionProvider");
this.connectionProvider.dispose();
try {
ConnectionProvider provider = this.connectionProvider;
if (provider != null) {
provider.dispose();
}
}
catch (Throwable ex) {
// ignore
}
Assert.notNull(this.loopResources, "No LoopResources");
this.loopResources.dispose();
try {
LoopResources resources = this.loopResources;
if (resources != null) {
resources.dispose();
}
}
catch (Throwable ex) {
// ignore
}
}
}

View File

@@ -95,7 +95,7 @@ concurrency. In this mode global resources remain active until the process exits
If the server is timed with the process, there is typically no need for an explicit
shutdown. However if the server can start or stop in-process, e.g. Spring MVC
application deployed as a WAR, you can declare a Spring-managed bean of type
`ReactorResourceFactory` with `globaResources=true` (the default) to ensure the Reactor
`ReactorResourceFactory` with `globalResources=true` (the default) to ensure the Reactor
Netty global resources are shut down when the Spring `ApplicationContext` is closed:
[source,java,intent=0]