]
Tristan Tarrant updated ISPN-10070:
-----------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
DefaultCacheManager should stop components after start failure
--------------------------------------------------------------
Key: ISPN-10070
URL:
https://issues.jboss.org/browse/ISPN-10070
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.10.Final, 10.0.0.Beta2
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Major
Fix For: 10.0.0.Beta4, 9.4.16.Final
Currently it is impossible to release all the resources allocated during startup if the
{{DefaultCacheManager}} instance was created with {{start=true}}. The user has to do
something like this:
{code:java}
DefaultCacheManager manager = new DefaultCacheManager(..., false);
try {
manager.start();
} catch (Throwable t) {
manager.stop();
throw t;
}
{code}
Both the constructor and the public {{start()}} method should clean up the started
components after a startup failure, so that the user doesn't have to call {{stop()}}
explicitly.
Our tests do not currently call {{stop()}} explicitly, so they leak threads and sockets
when a manager fails to start (e.g. because something went wrong with the {{CONFIG}}
cache).