public bool MethodReceived(AMQMethodEvent evt)
        {
            _logger.Debug(String.Format("Finding method handler. currentState={0} type={1}", _currentState, evt.Method.GetType()));
            //Console.WriteLine(String.Format("Finding method handler. currentState={0} type={1}", _currentState, evt.Method.GetType())); //KHC
            IStateAwareMethodListener handler = FindStateTransitionHandler(_currentState, evt.Method);

            if (handler != null)
            {
                handler.MethodReceived(this, evt);
                //Console.WriteLine("  MethodReceived return true, newState={0}", _currentState);
                return(true);
            }
            //Console.WriteLine("  MethodReceived return false, currentState={0}", _currentState);
            return(false);
        }
        /// <summary>
        /// Finds the state transition handler.
        /// </summary>
        /// <param name="currentState">State of the current.</param>
        /// <param name="frame">The frame.</param>
        /// <returns></returns>
        /// <exception cref="IllegalStateTransitionException">if the state transition if not allowed</exception>
        private IStateAwareMethodListener FindStateTransitionHandler(AMQState currentState,
                                                                     AMQMethodBody frame)
        {
            Type clazz = frame.GetType();

            if (_logger.IsDebugEnabled)
            {
                _logger.Debug("Looking for state transition handler for frame " + clazz);
            }
            IDictionary classToHandlerMap = (IDictionary)_state2HandlersMap[currentState];

            if (classToHandlerMap == null)
            {
                // if no specialised per state handler is registered look for a
                // handler registered for "all" states
                return(FindStateTransitionHandler(AMQState.ALL, frame));
            }
            IStateAwareMethodListener handler = (IStateAwareMethodListener)classToHandlerMap[clazz];

            if (handler == null)
            {
                if (currentState == AMQState.ALL)
                {
                    _logger.Debug("No state transition handler defined for receiving frame " + frame);
                    Console.WriteLine(" *** No state transition handler defined for receiving frame " + frame);   //KHC
                    return(null);
                }
                else
                {
                    // if no specialised per state handler is registered look for a
                    // handler registered for "all" states
                    return(FindStateTransitionHandler(AMQState.ALL, frame));
                }
            }
            else
            {
                return(handler);
            }
        }