public synchronized final void destroy() throws LifecycleException {
+ if (LifecycleState.DESTROYED.equals(state)) {
+
+ if (log.isDebugEnabled()) {
+ Exception e = new LifecycleException();
+ log.debug(sm.getString("lifecycleBase.alreadyDestroyed",
+ toString()), e);
+ } else if (log.isInfoEnabled()) {
+ log.info(sm.getString("lifecycleBase.alreadyDestroyed",
+ toString()));
+ }
+
+ return;
+ }
+
if (!state.equals(LifecycleState.STOPPED) &&
!state.equals(LifecycleState.FAILED)) {
invalidTransition(Lifecycle.DESTROY_EVENT);
lifecycleBase.initMBeanFail=Failed to register component [{0}] with MBean name [{1}]
lifecycleBase.alreadyStarted=The start() method was called on component [{0}] after start() had already been called. The second call will be ignored.
lifecycleBase.alreadyStopped=The stop() method was called on component [{0}] after stop() had already been called. The second call will be ignored.
+lifecycleBase.alreadyDestroyed=The destroy() method was called on component [{0}] after destroy() had already been called. The second call will be ignored.
lifecycleBase.invalidTransition=An invalid Lifecycle transition was attempted ([{0}]) for component [{1}] in state [{2}]
requestUtil.convertHexDigit.notHex=[{0}] is not a hexadecimal digit
requestUtil.parseParameters.uee=Unable to parse the parameters since the encoding [{0}] is not supported.