From 04521379a645418846165457be1eee6fec352a1a Mon Sep 17 00:00:00 2001 From: markt Date: Mon, 10 May 2010 15:41:58 +0000 Subject: [PATCH] Allow the transition from NEW to DESTROYED for objects that are never started. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@942794 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/Lifecycle.java | 40 +++++++++++++----------- java/org/apache/catalina/util/LifecycleBase.java | 3 +- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/java/org/apache/catalina/Lifecycle.java b/java/org/apache/catalina/Lifecycle.java index 70ef9e86c..6bd268173 100644 --- a/java/org/apache/catalina/Lifecycle.java +++ b/java/org/apache/catalina/Lifecycle.java @@ -31,25 +31,29 @@ package org.apache.catalina; * | | * init() start() | auto auto stop() | * NEW ->-- INITIALIZED -->-- STARTING_PREP -->- STARTING -->- STARTED -->--- | - * | | ^ | | | - * | | start() | | | | - * | ----------->-------------------- | | | - * | | | | - * | auto auto | | | - * |stop() ---------<----- MUST_STOP ---------------------<-- | | - * | | | | - * | ---------------------------<-------------------------------- ^ - * | | | - * | | auto auto start() | - * | STOPPING_PREP ------>----- STOPPING ------>----- STOPPED ---->------ - * | ^ | | ^ - * | | auto | | | - * | |stop() MUST_DESTROY------<------- | | - * | | | | | - * | | |auto | | - * | | destroy() \|/ destroy() | | - * | FAILED ---->------ DESTROYED ----<----------------- | + * ||| ^ | | | + * ||| start() | | | | + * ||----------->-------------------- | | | + * || | | | + * |--- auto auto | | | + * | | ---------<----- MUST_STOP ---------------------<-- | | + * | | | | | + * | | ---------------------------<-------------------------------- ^ + * | | | | + * | | | auto auto start() | + * | | STOPPING_PREP ------>----- STOPPING ------>----- STOPPED ---->------ + * | | ^ | | ^ + * | | | auto | | | + * | | |stop() MUST_DESTROY------<------- | | + * | | | | | | + * | | | |auto | | + * | | | destroy() \|/ destroy() | | + * | | FAILED ---->------ DESTROYED ----<----------------- | + * | | ^ | + * | | destroy() | | + * | ------------------------------- | * | | + * | stop() | * --->------------------------------>------------------------------ * * Any state can transition to FAILED. diff --git a/java/org/apache/catalina/util/LifecycleBase.java b/java/org/apache/catalina/util/LifecycleBase.java index 670cf0226..c0cef3be2 100644 --- a/java/org/apache/catalina/util/LifecycleBase.java +++ b/java/org/apache/catalina/util/LifecycleBase.java @@ -255,7 +255,8 @@ public abstract class LifecycleBase implements Lifecycle { } if (!state.equals(LifecycleState.STOPPED) && - !state.equals(LifecycleState.FAILED)) { + !state.equals(LifecycleState.FAILED) && + !state.equals(LifecycleState.NEW)) { invalidTransition(Lifecycle.DESTROY_EVENT); } -- 2.11.0