setState(LifecycleState.STOPPING);
// Stop the Valves in our pipeline (including the basic), if any
- if (pipeline instanceof Lifecycle) {
+ if (pipeline instanceof Lifecycle &&
+ ((Lifecycle) pipeline).getState().isAvailable()) {
((Lifecycle) pipeline).stop();
}
if ((cluster != null) && (cluster instanceof Lifecycle)) {
((Lifecycle) cluster).stop();
}
- if ((manager != null) && (manager instanceof Lifecycle)) {
+ if ((manager != null) && (manager instanceof Lifecycle) &&
+ ((Lifecycle) manager).getState().isAvailable() ) {
((Lifecycle) manager).stop();
}
if ((logger != null) && (logger instanceof Lifecycle)) {
// Stop ContainerBackgroundProcessor thread
threadStop();
- if (manager != null && manager instanceof Lifecycle) {
+ if (manager != null && manager instanceof Lifecycle &&
+ ((Lifecycle) manager).getState().isAvailable()) {
try {
((Lifecycle) manager).stop();
} catch (LifecycleException e) {
fireLifecycleEvent(Lifecycle.CONFIGURE_STOP_EVENT, null);
// Stop the Valves in our pipeline (including the basic), if any
- if (pipeline instanceof Lifecycle) {
+ if (pipeline instanceof Lifecycle &&
+ ((Lifecycle) pipeline).getState().isAvailable()) {
((Lifecycle) pipeline).stop();
}
<bug>51614</bug>: Avoid calling store.load() and session.expire()
twice in PersistentManager when expiring sessions. (kfujino)
</fix>
+ <fix>
+ Prevent spurious log warnings on container stop if a child component has
+ previously failed. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">