public final void removeHandler(MessageHandler handler) { Map<Class<?>, Boolean> types = ClassUtils.getHandlerTypes(handler.getClass()); for (Entry<Class<?>, Boolean> e : types.entrySet()) { Class<?> type = e.getKey(); HandlerWrapper handlerWrapper = createHandlerWrapper(type, handler, e.getValue()); FrameType frameType = handlerWrapper.getFrameType(); HandlerWrapper wrapper = handlers.get(frameType); if (wrapper != null && wrapper.getMessageType() == type) { handlers.remove(frameType, wrapper); } } }