confmaster/src/main/java/com/navercorp/nbasearc/confmaster/server/leaderelection/LeaderElectionSupport.java
public synchronized void start() {
        state = State.START;
        dispatchEvent(LeaderElectionEventType.START);

        logger.info("Starting leader election support");

        if (zooKeeper == null) {
            throw new IllegalStateException(
                    "No instance of zookeeper provided. Hint: use setZooKeeper()");
        }

        if (hostName == null) {
            throw new IllegalStateException(
                    "No hostname provided. Hint: use setHostName()");
        }

        try {
            makeOffer();
            determineElectionStatus();
        } catch (KeeperException e) {
            becomeFailed(e);
        } catch (InterruptedException e) {
            becomeFailed(e);
        }
    }
public synchronized void start() {
        state = State.START;
        dispatchEvent(LeaderElectionEventType.START);

        logger.info("Starting leader election support");

        if (zooKeeper == null) {
            throw new IllegalStateException(
                    "No instance of zookeeper provided. Hint: use setZooKeeper()");
        }

        if (hostName == null) {
            throw new IllegalStateException(
                    "No hostname provided. Hint: use setHostName()");
        }

        try {
            makeOffer();
            determineElectionStatus();
        } catch (KeeperException e) {
            becomeFailed(e);
        } catch (InterruptedException e) {
            becomeFailed(e);
        }
    }
<p>
Start the election process. This method will create a leader offer,
determine its status, and either become the leader or become ready. If an
instance of {@link ZooKeeper} has not yet been configured by the user, a
new instance is created using the connectString and sessionTime
specified.
</p>
<p>
Any (anticipated) failures result in a failed event being sent to all
listeners.
</p>