private void handleStateChange(Message message) { if (message.getResourceName().startsWith(SEPARATOR)) { String[] srcDest = message.getResourceName().split(SEPARATOR); if (srcDest.length == 3) { _controllerHelix.handleRouteAssignmentEvent(srcDest[1], srcDest[2], message.getPartitionName(), message.getToState()); } else { String msg = String.format("Invalid resource name for route: resource=%s, partition=%s", message.getResourceName(), message.getPartitionName()); LOGGER.error(msg); throw new IllegalArgumentException(msg); } } else { String[] srcDest = message.getPartitionName().split(SEPARATOR); if (srcDest.length == 4) { _controllerHelix.handleTopicAssignmentEvent(message.getResourceName(), srcDest[1], srcDest[2], srcDest[3], message.getToState()); } else { String msg = String.format("Invalid partition name for topic: resource=%s, partition=%s", message.getResourceName(), message.getPartitionName()); LOGGER.error(msg); throw new IllegalArgumentException(msg); } } } }