Github user kishoreg commented on a diff in the pull request: https://github.com/apache/helix/pull/159#discussion_r177274948 --- Diff: helix-core/src/main/java/org/apache/helix/manager/zk/CallbackHandler.java --- @@ -168,41 +215,41 @@ private void parseListenerProperties() { Class listenerClass = null; switch (_changeType) { - case IDEAL_STATE: - listenerClass = IdealStateChangeListener.class; - break; - case INSTANCE_CONFIG: - if (_listener instanceof ConfigChangeListener) { + case IDEAL_STATE: + listenerClass = IdealStateChangeListener.class; + break; + case INSTANCE_CONFIG: + if (_listener instanceof ConfigChangeListener) { + listenerClass = ConfigChangeListener.class; + } else if (_listener instanceof InstanceConfigChangeListener) { + listenerClass = InstanceConfigChangeListener.class; + } + break; + case CLUSTER_CONFIG: + listenerClass = ClusterConfigChangeListener.class; + break; + case RESOURCE_CONFIG: + listenerClass = ResourceConfigChangeListener.class; + break; + case CONFIG: listenerClass = ConfigChangeListener.class; - } else if (_listener instanceof InstanceConfigChangeListener) { - listenerClass = InstanceConfigChangeListener.class; - } - break; - case CLUSTER_CONFIG: - listenerClass = ClusterConfigChangeListener.class; - break; - case RESOURCE_CONFIG: - listenerClass = ResourceConfigChangeListener.class; - break; - case CONFIG: - listenerClass = ConfigChangeListener.class; - break; - case LIVE_INSTANCE: - listenerClass = LiveInstanceChangeListener.class; - break; - case CURRENT_STATE: - listenerClass = CurrentStateChangeListener.class; ; - break; - case MESSAGE: - case MESSAGES_CONTROLLER: - listenerClass = MessageListener.class; - break; - case EXTERNAL_VIEW: - case TARGET_EXTERNAL_VIEW: - listenerClass = ExternalViewChangeListener.class; - break; - case CONTROLLER: - listenerClass = ControllerChangeListener.class; + break; + case LIVE_INSTANCE: + listenerClass = LiveInstanceChangeListener.class; + break; + case CURRENT_STATE: + listenerClass = CurrentStateChangeListener.class; ; + break; + case MESSAGE: + case MESSAGES_CONTROLLER: + listenerClass = MessageListener.class; + break; + case EXTERNAL_VIEW: + case TARGET_EXTERNAL_VIEW: + listenerClass = ExternalViewChangeListener.class; + break; + case CONTROLLER: + listenerClass = ControllerChangeListener.class; } Method callbackMethod = listenerClass.getMethods()[0]; --- End diff -- can we get the method using the explicit name.
---