Fix NPE if rebalance strategy is not specified in IS.
Project: http://git-wip-us.apache.org/repos/asf/helix/repo Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/019d6f4d Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/019d6f4d Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/019d6f4d Branch: refs/heads/master Commit: 019d6f4ddb21f0c9371fcf6f4e99504fa961c551 Parents: d9696cc Author: Lei Xia <[email protected]> Authored: Mon Dec 11 11:41:18 2017 -0800 Committer: Junkai Xue <[email protected]> Committed: Wed Jan 24 18:32:16 2018 -0800 ---------------------------------------------------------------------- .../helix/controller/rebalancer/DelayedAutoRebalancer.java | 2 +- .../java/org/apache/helix/messaging/handling/HelixTask.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/helix/blob/019d6f4d/helix-core/src/main/java/org/apache/helix/controller/rebalancer/DelayedAutoRebalancer.java ---------------------------------------------------------------------- diff --git a/helix-core/src/main/java/org/apache/helix/controller/rebalancer/DelayedAutoRebalancer.java b/helix-core/src/main/java/org/apache/helix/controller/rebalancer/DelayedAutoRebalancer.java index 7ad2eb2..f943abf 100644 --- a/helix-core/src/main/java/org/apache/helix/controller/rebalancer/DelayedAutoRebalancer.java +++ b/helix-core/src/main/java/org/apache/helix/controller/rebalancer/DelayedAutoRebalancer.java @@ -66,7 +66,7 @@ public class DelayedAutoRebalancer extends AbstractRebalancer { ZNRecord znRecord = clusterData.getCachedIdealMapping(resourceName); if (znRecord != null) { // TODO: only apply to legacy Auto-RebalanceStrategy at this time, need to apply to any strategy in future. - if (currentIdealState.getRebalanceStrategy().equals(AutoRebalanceStrategy.class.getName())) { + if (AutoRebalanceStrategy.class.getName().equals(currentIdealState.getRebalanceStrategy())) { LOG.info("Use cached idealstate for " + resourceName); IdealState idealState = new IdealState(znRecord); return idealState; http://git-wip-us.apache.org/repos/asf/helix/blob/019d6f4d/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java ---------------------------------------------------------------------- diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java index 7b1853f..2543d81 100644 --- a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java +++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTask.java @@ -214,6 +214,8 @@ public class HelixTask implements MessageTask { boolean success = accessor.removeProperty(msgKey); if (!success) { logger.warn("Failed to delete message " + message.getId() + " from zk!"); + } else { + logger.info("Delete message " + message.getId() + " from zk!"); } } @@ -225,6 +227,9 @@ public class HelixTask implements MessageTask { // Ignore all relay messages if participant's session has changed. if (!_manager.getSessionId().equals(message.getTgtSessionId())) { + logger.info( + "Session id has been changed, ignore all relay messages attached with " + message + .getId()); return; } @@ -234,7 +239,7 @@ public class HelixTask implements MessageTask { msg.setRelayTime(taskCompletionTime); if (msg.isExpired()) { logger.info( - "Relay message expired, ignore it! " + msg.getId() + " to instance " + instance); + "Relay message expired, ignore " + msg.getId() + " to instance " + instance); continue; } PropertyKey msgKey = keyBuilder.message(instance, msg.getId()); @@ -242,6 +247,8 @@ public class HelixTask implements MessageTask { .create(msgKey.getPath(), msg.getRecord(), AccessOption.PERSISTENT); if (!success) { logger.warn("Failed to send relay message " + msg.getId() + " to " + instance); + } else { + logger.info("Send relay message " + message.getId() + " to " + instance); } } }
