You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@zookeeper.apache.org by Joshua Blatt <jb...@verticloud.com> on 2012/12/03 20:39:10 UTC

Embedded ZK instance for unit testing

Hi guys,

I've seen a few threads on why it's a bad idea to try to embed ZK in your app.   I'm not trying to do that for my production app.   I am trying to do that for unit tests.   I could try to mock out ZK but I'm concerned that'd be both a lot of typing and wouldn't, well, test against the real thing.

Has anyone done this before?

When I tried doing this I saw the ZK session request initiated by the unit test go through (after first trying IPv6, then falling back to IPv4), but then the first operation attempted timed out after 40 seconds.   The same test case passes against a 3 node external ZK cluster.

Note that I'm spinning up a new ZK instance for every test run - I've tried inserting a several minute sleep after startup to give it time to initialize, but that didn't make a difference.


import java.io.File;
import java.util.UUID;
import java.util.concurrent.Semaphore;
import org.apache.commons.io.FileUtils;
import org.apache.zookeeper.server.ZooKeeperServerMain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * A single-node embedded zookeeper server. <p>
 * WARNING: This class is only intended for unit testing. It's not production-
 * grade.
 *
 * @author jblatt
 */
public class EmbeddedZooKeeper extends ZooKeeperServerMain {

    private static final Logger LOGGER =
            LoggerFactory.getLogger(EmbeddedZooKeeper.class);
    private final File dataDir = new File(
            FileUtils.getTempDirectoryPath() + "/"
            + UUID.randomUUID().toString());
    private final int clientPort;
    private final Semaphore isRunning = new Semaphore(0);
    private Thread thread;

    public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException {
        this.clientPort = clientPort;
    }

    public void start() throws ZooKeeperException {
        try {
            FileUtils.forceMkdir(dataDir);

            final EmbeddedZooKeeper self = this;

            thread = new Thread() {

                @Override
                public void run() {
                    try {
                        LOGGER.info("Starting ZK server");

                        self.initializeAndRun(new String[]{
                                    Integer.toString(clientPort),
                                    dataDir.getAbsolutePath()});

                        LOGGER.info("Started ZK server");

                        isRunning.acquire();

                        LOGGER.info("Stopped ZK server");

                    } catch (Throwable t) {
                        LOGGER.error("Failure in embedded ZooKeeper", t);
                    }
                }
            };

            thread.start();
        } catch (Throwable t) {
            throw new ZooKeeperException("Cannot start embedded zookeeper", t);
        }
    }

    public void stop() throws ZooKeeperException {
        try {
            LOGGER.info("Stopping ZK server");

            super.shutdown();

            isRunning.release();

            thread.join();
        } catch (Throwable t) {
            throw new ZooKeeperException("Cannot stop embedded zookeeper", t);
        } finally {
            // Unconditionally try to cleanup tmp dirs even if this is done
            // on a running ZK server.   We don't want to clutter up the user's
            // local fs.

            try {
                FileUtils.deleteDirectory(dataDir);
            } catch (Throwable t) {
                LOGGER.error("Cannot cleanup tmp dirs {}",
                        dataDir.getAbsolutePath());
            }
        }
    }
}

Log output:

11:07:24.064 INFO  [main] st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Begin EmbeddedZooKeeperForUnitTests.start()
11:07:24.066 INFO  [main] st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Embedded ZooKeeper started
11:07:24.066 INFO  [Thread-1] st.ata.vcc.control.core.zookeeper.EmbeddedZooKeeper - Starting ZK server
11:07:24.086 INFO  [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - Begin RoutePublisherTest.start()
11:07:24.087 DEBUG [main] st.ata.vcc.proxy.common.model.RoutePublisher - Starting ZK connection on st.ata.vcc.proxy.common.model.RoutePublisher@6b08d7cf
11:07:24.087 INFO  [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connecting to localhost:2181
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:host.name=10.66.225.162
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.7.0_05
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.compiler=<NA>
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.name=Mac OS X
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.arch=x86_64
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.version=10.8.2
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.name=jblatt
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.home=/Users/jblatt
11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.dir=/Users/jblatt/dev/proxy/common
11:07:24.095 INFO  [main] org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=300000 watcher=st.ata.vcc.control.core.zookeeper.ZooKeeperConnection$ConnectionWatcher@457b9183
11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn - zookeeper.disableAutoWatchReset is false
11:07:24.114 INFO  [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
11:07:24.125 WARN  [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: Connection refused
	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_05]
	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) ~[na:1.7.0_05]
	at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
11:07:24.125 DEBUG [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown input
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:762) ~[na:1.7.0_05]
	at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421) ~[na:1.7.0_05]
	at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:189) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) [zookeeper-3.4.5.jar:3.4.5-1392090]
11:07:24.126 DEBUG [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown output
java.nio.channels.ClosedChannelException: null
	at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:779) ~[na:1.7.0_05]
	at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:429) ~[na:1.7.0_05]
	at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:196) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) [zookeeper-3.4.5.jar:3.4.5-1392090]
log4j:WARN No appenders could be found for logger (org.apache.log4j.jmx.HierarchyDynamicMBean).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
11:07:24.135 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServerMain - Starting server
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:host.name=10.66.225.162
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.version=1.7.0_05
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.vendor=Oracle Corporation
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.compiler=<NA>
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.name=Mac OS X
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.arch=x86_64
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.version=10.8.2
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.name=jblatt
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.home=/Users/jblatt
11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.dir=/Users/jblatt/dev/proxy/common
11:07:24.142 DEBUG [Thread-1] org.apache.zookeeper.server.persistence.FileTxnSnapLog - Opening datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748 snapDir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748
11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - tickTime set to 3000
11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - minSessionTimeout set to -1
11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - maxSessionTimeout set to -1
11:07:24.151 INFO  [Thread-1] org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port 0.0.0.0/0.0.0.0:2181
11:07:24.162 INFO  [Thread-1] org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting: 0x0 to /var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748/version-2/snapshot.0
11:07:29.230 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Opening socket connection to server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181. Will not attempt to authenticate using SASL (unknown error)
11:07:29.231 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Socket connection established to fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, initiating session
11:07:29.231 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.NIOServerCnxnFactory - Accepted socket connection from /fe80:0:0:0:0:0:0:1%1:50774
11:07:29.232 DEBUG [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Session establishment request sent on fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181
11:07:29.235 DEBUG [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.ZooKeeperServer - Session establishment request from client /fe80:0:0:0:0:0:0:1%1:50774 client's lastZxid is 0x0
11:07:29.236 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.ZooKeeperServer - Client attempting to establish new session at /fe80:0:0:0:0:0:0:1%1:50774
11:07:29.238 INFO  [SyncThread:0] org.apache.zookeeper.server.persistence.FileTxnLog - Creating new log file: log.1
11:07:29.243 DEBUG [SyncThread:0] org.apache.zookeeper.server.FinalRequestProcessor - Processing request:: sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 reqpath:n/a
11:07:29.246 DEBUG [SyncThread:0] org.apache.zookeeper.server.FinalRequestProcessor - sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 reqpath:n/a
11:07:29.249 INFO  [SyncThread:0] org.apache.zookeeper.server.ZooKeeperServer - Established session 0x13b622a66870000 with negotiated timeout 60000 for client /fe80:0:0:0:0:0:0:1%1:50774
11:07:29.249 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Session establishment complete on server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, sessionid = 0x13b622a66870000, negotiated timeout = 60000
11:07:29.250 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, state=SyncConnected, path=null
11:07:29.250 DEBUG [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connected to localhost:2181
11:08:09.250 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Client session timed out, have not heard from server in 40000ms for sessionid 0x13b622a66870000, closing socket connection and attempting reconnect
11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, state=Disconnected, path=null
11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Lost connection to localhost:2181
11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper - Closing session: 0x13b622a66870000
11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn - Closing client for session: 0x13b622a66870000
11:08:09.359 ERROR [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - Cannot start RoutePublisherTest
st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
	at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) ~[classes/:na]
	at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) ~[classes/:na]
	at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) ~[test-classes/:na]
	at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng-6.5.2.jar:na]
	at org.testng.internal.MethodInvocationHelper$2.runConfigurationMethod(MethodInvocationHelper.java:274) [testng-6.5.2.jar:na]
	at mockit.integration.testng.internal.TestNGRunnerDecorator.run(TestNGRunnerDecorator.java:81) [jmockit-0.999.10.jar:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
	at org.testng.internal.MethodInvocationHelper.invokeConfigurable(MethodInvocationHelper.java:286) [testng-6.5.2.jar:na]
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543) [testng-6.5.2.jar:na]
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) [testng-6.5.2.jar:na]
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) [testng-6.5.2.jar:na]
	at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) [testng-6.5.2.jar:na]
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) [testng-6.5.2.jar:na]
	at org.testng.TestRunner.privateRun(TestRunner.java:768) [testng-6.5.2.jar:na]
	at org.testng.TestRunner.run(TestRunner.java:617) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunner.run(SuiteRunner.java:240) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) [testng-6.5.2.jar:na]
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87) [testng-6.5.2.jar:na]
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1188) [testng-6.5.2.jar:na]
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1113) [testng-6.5.2.jar:na]
	at org.testng.TestNG.run(TestNG.java:1025) [testng-6.5.2.jar:na]
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76) [surefire-testng-2.12.jar:2.12]
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161) [surefire-testng-2.12.jar:2.12]
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101) [surefire-testng-2.12.jar:2.12]
	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115) [surefire-testng-2.12.jar:2.12]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
	at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
	at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) ~[classes/:na]
	at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) ~[classes/:na]
	... 44 common frames omitted
Tests run: 5, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 46.141 sec <<< FAILURE!
start(st.ata.vcc.proxy.common.model.RoutePublisherUnitTest)  Time elapsed: 45.281 sec  <<< FAILURE!
st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
	at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103)
	at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36)
	at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35)
	at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28)
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
	at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069)
	at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161)
	at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98)
	... 44 more





Any ideas?

Thanks,

Josh

Re: Embedded ZK instance for unit testing

Posted by Joshua Blatt <jb...@verticloud.com>.
Thanks for the references guys.

Turns out... my embedded ZK does actually work... on linux, not mac.  :(

On Dec 3, 2012, at 11:48 AM, "Carroll James (Nokia-LC/Malvern)" <ja...@nokia.com> wrote:

> We do it in our tests.
> 
> Project page: https://github.com/Dempsy/Dempsy
> Embedded server for testing: https://github.com/Dempsy/Dempsy/blob/master/lib-dempsyimpl/src/test/java/com/nokia/dempsy/cluster/zookeeper/ZookeeperTestServer.java
> 
> Also, it creates the connection string dynamically and therefore starts the server on an ephemeral port.
> 
> -----Original Message-----
> From: Jordan Zimmerman [mailto:jordan@jordanzimmerman.com]
> Sent: Monday, December 03, 2012 2:45 PM
> To: user@zookeeper.apache.org
> Subject: Re: Embedded ZK instance for unit testing
> 
> Curator has a test ZK server and cluster: curator-test
> 
> ====================
> Jordan Zimmerman
> 
> On Dec 3, 2012, at 11:39 AM, Joshua Blatt <jb...@verticloud.com> wrote:
> 
>> Hi guys,
>> 
>> I've seen a few threads on why it's a bad idea to try to embed ZK in your app.   I'm not trying to do that for my production app.   I am trying to do that for unit tests.   I could try to mock out ZK but I'm concerned that'd be both a lot of typing and wouldn't, well, test against the real thing.
>> 
>> Has anyone done this before?
>> 
>> When I tried doing this I saw the ZK session request initiated by the unit test go through (after first trying IPv6, then falling back to IPv4), but then the first operation attempted timed out after 40 seconds.   The same test case passes against a 3 node external ZK cluster.
>> 
>> Note that I'm spinning up a new ZK instance for every test run - I've tried inserting a several minute sleep after startup to give it time to initialize, but that didn't make a difference.
>> 
>> 
>> import java.io.File;
>> import java.util.UUID;
>> import java.util.concurrent.Semaphore; import
>> org.apache.commons.io.FileUtils; import
>> org.apache.zookeeper.server.ZooKeeperServerMain;
>> import org.slf4j.Logger;
>> import org.slf4j.LoggerFactory;
>> 
>> /**
>> * A single-node embedded zookeeper server. <p>
>> * WARNING: This class is only intended for unit testing. It's not
>> production-
>> * grade.
>> *
>> * @author jblatt
>> */
>> public class EmbeddedZooKeeper extends ZooKeeperServerMain {
>> 
>>   private static final Logger LOGGER =
>>           LoggerFactory.getLogger(EmbeddedZooKeeper.class);
>>   private final File dataDir = new File(
>>           FileUtils.getTempDirectoryPath() + "/"
>>           + UUID.randomUUID().toString());
>>   private final int clientPort;
>>   private final Semaphore isRunning = new Semaphore(0);
>>   private Thread thread;
>> 
>>   public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException {
>>       this.clientPort = clientPort;
>>   }
>> 
>>   public void start() throws ZooKeeperException {
>>       try {
>>           FileUtils.forceMkdir(dataDir);
>> 
>>           final EmbeddedZooKeeper self = this;
>> 
>>           thread = new Thread() {
>> 
>>               @Override
>>               public void run() {
>>                   try {
>>                       LOGGER.info("Starting ZK server");
>> 
>>                       self.initializeAndRun(new String[]{
>>                                   Integer.toString(clientPort),
>>                                   dataDir.getAbsolutePath()});
>> 
>>                       LOGGER.info("Started ZK server");
>> 
>>                       isRunning.acquire();
>> 
>>                       LOGGER.info("Stopped ZK server");
>> 
>>                   } catch (Throwable t) {
>>                       LOGGER.error("Failure in embedded ZooKeeper", t);
>>                   }
>>               }
>>           };
>> 
>>           thread.start();
>>       } catch (Throwable t) {
>>           throw new ZooKeeperException("Cannot start embedded zookeeper", t);
>>       }
>>   }
>> 
>>   public void stop() throws ZooKeeperException {
>>       try {
>>           LOGGER.info("Stopping ZK server");
>> 
>>           super.shutdown();
>> 
>>           isRunning.release();
>> 
>>           thread.join();
>>       } catch (Throwable t) {
>>           throw new ZooKeeperException("Cannot stop embedded zookeeper", t);
>>       } finally {
>>           // Unconditionally try to cleanup tmp dirs even if this is done
>>           // on a running ZK server.   We don't want to clutter up the user's
>>           // local fs.
>> 
>>           try {
>>               FileUtils.deleteDirectory(dataDir);
>>           } catch (Throwable t) {
>>               LOGGER.error("Cannot cleanup tmp dirs {}",
>>                       dataDir.getAbsolutePath());
>>           }
>>       }
>>   }
>> }
>> 
>> Log output:
>> 
>> 11:07:24.064 INFO  [main]
>> st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Begin
>> EmbeddedZooKeeperForUnitTests.start()
>> 11:07:24.066 INFO  [main]
>> st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Embedded
>> ZooKeeper started
>> 11:07:24.066 INFO  [Thread-1]
>> st.ata.vcc.control.core.zookeeper.EmbeddedZooKeeper - Starting ZK
>> server
>> 11:07:24.086 INFO  [main]
>> st.ata.vcc.proxy.common.model.RoutePublisherTest - Begin
>> RoutePublisherTest.start()
>> 11:07:24.087 DEBUG [main] st.ata.vcc.proxy.common.model.RoutePublisher
>> - Starting ZK connection on
>> st.ata.vcc.proxy.common.model.RoutePublisher@6b08d7cf
>> 11:07:24.087 INFO  [main]
>> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connecting to
>> localhost:2181
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52
>> GMT
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:host.name=10.66.225.162
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:java.version=1.7.0_05
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:java.vendor=Oracle Corporation
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Cont
>> ents/Home/jre
>> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg4000
>> 0gn/T/
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:java.compiler=<NA>
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:os.name=Mac OS X
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:os.arch=x86_64
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:os.version=10.8.2
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:user.name=jblatt
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:user.home=/Users/jblatt
>> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
>> environment:user.dir=/Users/jblatt/dev/proxy/common
>> 11:07:24.095 INFO  [main] org.apache.zookeeper.ZooKeeper - Initiating
>> client connection, connectString=localhost:2181 sessionTimeout=300000
>> watcher=st.ata.vcc.control.core.zookeeper.ZooKeeperConnection$Connecti
>> onWatcher@457b9183
>> 11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn -
>> zookeeper.disableAutoWatchReset is false
>> 11:07:24.114 INFO  [main-SendThread(localhost:2181)]
>> org.apache.zookeeper.ClientCnxn - Opening socket connection to server
>> localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using
>> SASL (unknown error)
>> 11:07:24.125 WARN  [main-SendThread(localhost:2181)]
>> org.apache.zookeeper.ClientCnxn - Session 0x0 for server null,
>> unexpected error, closing socket connection and attempting reconnect
>> java.net.ConnectException: Connection refused
>>   at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_05]
>>   at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) ~[na:1.7.0_05]
>>   at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at
>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
>> ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>> 11:07:24.125 DEBUG [main-SendThread(localhost:2181)]
>> org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during
>> shutdown input
>> java.nio.channels.ClosedChannelException: null
>>   at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:762) ~[na:1.7.0_05]
>>   at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421) ~[na:1.7.0_05]
>>   at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:189) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at
>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097)
>> [zookeeper-3.4.5.jar:3.4.5-1392090]
>> 11:07:24.126 DEBUG [main-SendThread(localhost:2181)]
>> org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during
>> shutdown output
>> java.nio.channels.ClosedChannelException: null
>>   at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:779) ~[na:1.7.0_05]
>>   at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:429) ~[na:1.7.0_05]
>>   at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:196) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at
>> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097)
>> [zookeeper-3.4.5.jar:3.4.5-1392090]
>> log4j:WARN No appenders could be found for logger (org.apache.log4j.jmx.HierarchyDynamicMBean).
>> log4j:WARN Please initialize the log4j system properly.
>> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
>> 11:07:24.135 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServerMain - Starting server
>> 11:07:24.139 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52
>> GMT
>> 11:07:24.139 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:host.name=10.66.225.162
>> 11:07:24.139 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:java.version=1.7.0_05
>> 11:07:24.139 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:java.vendor=Oracle Corporation
>> 11:07:24.139 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Cont
>> ents/Home/jre
>> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
>> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg4000
>> 0gn/T/
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:java.compiler=<NA>
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:os.name=Mac OS X
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:os.arch=x86_64
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:os.version=10.8.2
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:user.name=jblatt
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:user.home=/Users/jblatt
>> 11:07:24.140 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - Server
>> environment:user.dir=/Users/jblatt/dev/proxy/common
>> 11:07:24.142 DEBUG [Thread-1]
>> org.apache.zookeeper.server.persistence.FileTxnSnapLog - Opening
>> datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b
>> -42df-bb82-6330a1081748
>> snapDir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b
>> -42df-bb82-6330a1081748
>> 11:07:24.145 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - tickTime set to 3000
>> 11:07:24.145 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - minSessionTimeout set to
>> -1
>> 11:07:24.145 INFO  [Thread-1]
>> org.apache.zookeeper.server.ZooKeeperServer - maxSessionTimeout set to
>> -1
>> 11:07:24.151 INFO  [Thread-1]
>> org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port
>> 0.0.0.0/0.0.0.0:2181
>> 11:07:24.162 INFO  [Thread-1]
>> org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting:
>> 0x0 to
>> /var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb
>> 82-6330a1081748/version-2/snapshot.0
>> 11:07:29.230 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
>> org.apache.zookeeper.ClientCnxn - Opening socket connection to server
>> fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181. Will not attempt to
>> authenticate using SASL (unknown error)
>> 11:07:29.231 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
>> org.apache.zookeeper.ClientCnxn - Socket connection established to
>> fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, initiating session
>> 11:07:29.231 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
>> org.apache.zookeeper.server.NIOServerCnxnFactory - Accepted socket
>> connection from /fe80:0:0:0:0:0:0:1%1:50774
>> 11:07:29.232 DEBUG [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
>> org.apache.zookeeper.ClientCnxn - Session establishment request sent
>> on fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181
>> 11:07:29.235 DEBUG [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
>> org.apache.zookeeper.server.ZooKeeperServer - Session establishment
>> request from client /fe80:0:0:0:0:0:0:1%1:50774 client's lastZxid is
>> 0x0
>> 11:07:29.236 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
>> org.apache.zookeeper.server.ZooKeeperServer - Client attempting to
>> establish new session at /fe80:0:0:0:0:0:0:1%1:50774
>> 11:07:29.238 INFO  [SyncThread:0]
>> org.apache.zookeeper.server.persistence.FileTxnLog - Creating new log
>> file: log.1
>> 11:07:29.243 DEBUG [SyncThread:0]
>> org.apache.zookeeper.server.FinalRequestProcessor - Processing
>> request:: sessionid:0x13b622a66870000 type:createSession cxid:0x0
>> zxid:0x1 txntype:-10 reqpath:n/a
>> 11:07:29.246 DEBUG [SyncThread:0]
>> org.apache.zookeeper.server.FinalRequestProcessor -
>> sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1
>> txntype:-10 reqpath:n/a
>> 11:07:29.249 INFO  [SyncThread:0]
>> org.apache.zookeeper.server.ZooKeeperServer - Established session
>> 0x13b622a66870000 with negotiated timeout 60000 for client
>> /fe80:0:0:0:0:0:0:1%1:50774
>> 11:07:29.249 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
>> org.apache.zookeeper.ClientCnxn - Session establishment complete on
>> server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
>> 0x13b622a66870000, negotiated timeout = 60000
>> 11:07:29.250 DEBUG [main-EventThread]
>> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event:
>> type=None, state=SyncConnected, path=null
>> 11:07:29.250 DEBUG [main]
>> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connected to
>> localhost:2181
>> 11:08:09.250 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
>> org.apache.zookeeper.ClientCnxn - Client session timed out, have not
>> heard from server in 40000ms for sessionid 0x13b622a66870000, closing
>> socket connection and attempting reconnect
>> 11:08:09.352 DEBUG [main-EventThread]
>> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event:
>> type=None, state=Disconnected, path=null
>> 11:08:09.352 DEBUG [main-EventThread]
>> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Lost
>> connection to localhost:2181
>> 11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper -
>> Closing session: 0x13b622a66870000
>> 11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn
>> - Closing client for session: 0x13b622a66870000
>> 11:08:09.359 ERROR [main]
>> st.ata.vcc.proxy.common.model.RoutePublisherTest - Cannot start
>> RoutePublisherTest
>> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>>   at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) ~[classes/:na]
>>   at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) ~[classes/:na]
>>   at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) ~[test-classes/:na]
>>   at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) [test-classes/:na]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>>   at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>>   at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng-6.5.2.jar:na]
>>   at org.testng.internal.MethodInvocationHelper$2.runConfigurationMethod(MethodInvocationHelper.java:274) [testng-6.5.2.jar:na]
>>   at mockit.integration.testng.internal.TestNGRunnerDecorator.run(TestNGRunnerDecorator.java:81) [jmockit-0.999.10.jar:na]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>>   at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>>   at org.testng.internal.MethodInvocationHelper.invokeConfigurable(MethodInvocationHelper.java:286) [testng-6.5.2.jar:na]
>>   at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543) [testng-6.5.2.jar:na]
>>   at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) [testng-6.5.2.jar:na]
>>   at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) [testng-6.5.2.jar:na]
>>   at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) [testng-6.5.2.jar:na]
>>   at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) [testng-6.5.2.jar:na]
>>   at org.testng.TestRunner.privateRun(TestRunner.java:768) [testng-6.5.2.jar:na]
>>   at org.testng.TestRunner.run(TestRunner.java:617) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunner.run(SuiteRunner.java:240) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) [testng-6.5.2.jar:na]
>>   at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87) [testng-6.5.2.jar:na]
>>   at org.testng.TestNG.runSuitesSequentially(TestNG.java:1188) [testng-6.5.2.jar:na]
>>   at org.testng.TestNG.runSuitesLocally(TestNG.java:1113) [testng-6.5.2.jar:na]
>>   at org.testng.TestNG.run(TestNG.java:1025) [testng-6.5.2.jar:na]
>>   at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76) [surefire-testng-2.12.jar:2.12]
>>   at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161) [surefire-testng-2.12.jar:2.12]
>>   at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101) [surefire-testng-2.12.jar:2.12]
>>   at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115) [surefire-testng-2.12.jar:2.12]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>>   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>>   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>>   at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>>   at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
>>   at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
>>   at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
>>   at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
>>   at
>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12] Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>>   at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>>   at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) ~[classes/:na]
>>   at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) ~[classes/:na]
>>   ... 44 common frames omitted
>> Tests run: 5, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 46.141 sec <<< FAILURE!
>> start(st.ata.vcc.proxy.common.model.RoutePublisherUnitTest)  Time elapsed: 45.281 sec  <<< FAILURE!
>> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>>   at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103)
>>   at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36)
>>   at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35)
>>   at
>> st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublis
>> herUnitTest.java:28) Caused by:
>> org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>>   at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
>>   at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
>>   at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
>>   at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069)
>>   at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161)
>>   at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98)
>>   ... 44 more
>> 
>> 
>> 
>> 
>> 
>> Any ideas?
>> 
>> Thanks,
>> 
>> Josh
> 
> The information contained in this communication may be CONFIDENTIAL and is intended only for the use of the recipient(s) named above.  If you are not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited.  If you have received this communication in error, please notify the sender and delete/destroy the original message and any copy of it from your computer or paper files.


RE: Embedded ZK instance for unit testing

Posted by "Carroll James (Nokia-LC/Malvern)" <ja...@nokia.com>.
We do it in our tests.

Project page: https://github.com/Dempsy/Dempsy
Embedded server for testing: https://github.com/Dempsy/Dempsy/blob/master/lib-dempsyimpl/src/test/java/com/nokia/dempsy/cluster/zookeeper/ZookeeperTestServer.java

Also, it creates the connection string dynamically and therefore starts the server on an ephemeral port.

-----Original Message-----
From: Jordan Zimmerman [mailto:jordan@jordanzimmerman.com]
Sent: Monday, December 03, 2012 2:45 PM
To: user@zookeeper.apache.org
Subject: Re: Embedded ZK instance for unit testing

Curator has a test ZK server and cluster: curator-test

====================
Jordan Zimmerman

On Dec 3, 2012, at 11:39 AM, Joshua Blatt <jb...@verticloud.com> wrote:

> Hi guys,
>
> I've seen a few threads on why it's a bad idea to try to embed ZK in your app.   I'm not trying to do that for my production app.   I am trying to do that for unit tests.   I could try to mock out ZK but I'm concerned that'd be both a lot of typing and wouldn't, well, test against the real thing.
>
> Has anyone done this before?
>
> When I tried doing this I saw the ZK session request initiated by the unit test go through (after first trying IPv6, then falling back to IPv4), but then the first operation attempted timed out after 40 seconds.   The same test case passes against a 3 node external ZK cluster.
>
> Note that I'm spinning up a new ZK instance for every test run - I've tried inserting a several minute sleep after startup to give it time to initialize, but that didn't make a difference.
>
>
> import java.io.File;
> import java.util.UUID;
> import java.util.concurrent.Semaphore; import
> org.apache.commons.io.FileUtils; import
> org.apache.zookeeper.server.ZooKeeperServerMain;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> /**
> * A single-node embedded zookeeper server. <p>
> * WARNING: This class is only intended for unit testing. It's not
> production-
> * grade.
> *
> * @author jblatt
> */
> public class EmbeddedZooKeeper extends ZooKeeperServerMain {
>
>    private static final Logger LOGGER =
>            LoggerFactory.getLogger(EmbeddedZooKeeper.class);
>    private final File dataDir = new File(
>            FileUtils.getTempDirectoryPath() + "/"
>            + UUID.randomUUID().toString());
>    private final int clientPort;
>    private final Semaphore isRunning = new Semaphore(0);
>    private Thread thread;
>
>    public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException {
>        this.clientPort = clientPort;
>    }
>
>    public void start() throws ZooKeeperException {
>        try {
>            FileUtils.forceMkdir(dataDir);
>
>            final EmbeddedZooKeeper self = this;
>
>            thread = new Thread() {
>
>                @Override
>                public void run() {
>                    try {
>                        LOGGER.info("Starting ZK server");
>
>                        self.initializeAndRun(new String[]{
>                                    Integer.toString(clientPort),
>                                    dataDir.getAbsolutePath()});
>
>                        LOGGER.info("Started ZK server");
>
>                        isRunning.acquire();
>
>                        LOGGER.info("Stopped ZK server");
>
>                    } catch (Throwable t) {
>                        LOGGER.error("Failure in embedded ZooKeeper", t);
>                    }
>                }
>            };
>
>            thread.start();
>        } catch (Throwable t) {
>            throw new ZooKeeperException("Cannot start embedded zookeeper", t);
>        }
>    }
>
>    public void stop() throws ZooKeeperException {
>        try {
>            LOGGER.info("Stopping ZK server");
>
>            super.shutdown();
>
>            isRunning.release();
>
>            thread.join();
>        } catch (Throwable t) {
>            throw new ZooKeeperException("Cannot stop embedded zookeeper", t);
>        } finally {
>            // Unconditionally try to cleanup tmp dirs even if this is done
>            // on a running ZK server.   We don't want to clutter up the user's
>            // local fs.
>
>            try {
>                FileUtils.deleteDirectory(dataDir);
>            } catch (Throwable t) {
>                LOGGER.error("Cannot cleanup tmp dirs {}",
>                        dataDir.getAbsolutePath());
>            }
>        }
>    }
> }
>
> Log output:
>
> 11:07:24.064 INFO  [main]
> st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Begin
> EmbeddedZooKeeperForUnitTests.start()
> 11:07:24.066 INFO  [main]
> st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Embedded
> ZooKeeper started
> 11:07:24.066 INFO  [Thread-1]
> st.ata.vcc.control.core.zookeeper.EmbeddedZooKeeper - Starting ZK
> server
> 11:07:24.086 INFO  [main]
> st.ata.vcc.proxy.common.model.RoutePublisherTest - Begin
> RoutePublisherTest.start()
> 11:07:24.087 DEBUG [main] st.ata.vcc.proxy.common.model.RoutePublisher
> - Starting ZK connection on
> st.ata.vcc.proxy.common.model.RoutePublisher@6b08d7cf
> 11:07:24.087 INFO  [main]
> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connecting to
> localhost:2181
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52
> GMT
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:host.name=10.66.225.162
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:java.version=1.7.0_05
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:java.vendor=Oracle Corporation
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Cont
> ents/Home/jre
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg4000
> 0gn/T/
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:java.compiler=<NA>
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:os.name=Mac OS X
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:os.arch=x86_64
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:os.version=10.8.2
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:user.name=jblatt
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:user.home=/Users/jblatt
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client
> environment:user.dir=/Users/jblatt/dev/proxy/common
> 11:07:24.095 INFO  [main] org.apache.zookeeper.ZooKeeper - Initiating
> client connection, connectString=localhost:2181 sessionTimeout=300000
> watcher=st.ata.vcc.control.core.zookeeper.ZooKeeperConnection$Connecti
> onWatcher@457b9183
> 11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn -
> zookeeper.disableAutoWatchReset is false
> 11:07:24.114 INFO  [main-SendThread(localhost:2181)]
> org.apache.zookeeper.ClientCnxn - Opening socket connection to server
> localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using
> SASL (unknown error)
> 11:07:24.125 WARN  [main-SendThread(localhost:2181)]
> org.apache.zookeeper.ClientCnxn - Session 0x0 for server null,
> unexpected error, closing socket connection and attempting reconnect
> java.net.ConnectException: Connection refused
>    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at
> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068)
> ~[zookeeper-3.4.5.jar:3.4.5-1392090]
> 11:07:24.125 DEBUG [main-SendThread(localhost:2181)]
> org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during
> shutdown input
> java.nio.channels.ClosedChannelException: null
>    at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:762) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:189) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>    at
> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097)
> [zookeeper-3.4.5.jar:3.4.5-1392090]
> 11:07:24.126 DEBUG [main-SendThread(localhost:2181)]
> org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during
> shutdown output
> java.nio.channels.ClosedChannelException: null
>    at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:779) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:429) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:196) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>    at
> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097)
> [zookeeper-3.4.5.jar:3.4.5-1392090]
> log4j:WARN No appenders could be found for logger (org.apache.log4j.jmx.HierarchyDynamicMBean).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
> 11:07:24.135 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServerMain - Starting server
> 11:07:24.139 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52
> GMT
> 11:07:24.139 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:host.name=10.66.225.162
> 11:07:24.139 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:java.version=1.7.0_05
> 11:07:24.139 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:java.vendor=Oracle Corporation
> 11:07:24.139 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Cont
> ents/Home/jre
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg4000
> 0gn/T/
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:java.compiler=<NA>
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:os.name=Mac OS X
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:os.arch=x86_64
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:os.version=10.8.2
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:user.name=jblatt
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:user.home=/Users/jblatt
> 11:07:24.140 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - Server
> environment:user.dir=/Users/jblatt/dev/proxy/common
> 11:07:24.142 DEBUG [Thread-1]
> org.apache.zookeeper.server.persistence.FileTxnSnapLog - Opening
> datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b
> -42df-bb82-6330a1081748
> snapDir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b
> -42df-bb82-6330a1081748
> 11:07:24.145 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - tickTime set to 3000
> 11:07:24.145 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - minSessionTimeout set to
> -1
> 11:07:24.145 INFO  [Thread-1]
> org.apache.zookeeper.server.ZooKeeperServer - maxSessionTimeout set to
> -1
> 11:07:24.151 INFO  [Thread-1]
> org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port
> 0.0.0.0/0.0.0.0:2181
> 11:07:24.162 INFO  [Thread-1]
> org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting:
> 0x0 to
> /var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb
> 82-6330a1081748/version-2/snapshot.0
> 11:07:29.230 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
> org.apache.zookeeper.ClientCnxn - Opening socket connection to server
> fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181. Will not attempt to
> authenticate using SASL (unknown error)
> 11:07:29.231 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
> org.apache.zookeeper.ClientCnxn - Socket connection established to
> fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 11:07:29.231 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
> org.apache.zookeeper.server.NIOServerCnxnFactory - Accepted socket
> connection from /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.232 DEBUG [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
> org.apache.zookeeper.ClientCnxn - Session establishment request sent
> on fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181
> 11:07:29.235 DEBUG [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
> org.apache.zookeeper.server.ZooKeeperServer - Session establishment
> request from client /fe80:0:0:0:0:0:0:1%1:50774 client's lastZxid is
> 0x0
> 11:07:29.236 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181]
> org.apache.zookeeper.server.ZooKeeperServer - Client attempting to
> establish new session at /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.238 INFO  [SyncThread:0]
> org.apache.zookeeper.server.persistence.FileTxnLog - Creating new log
> file: log.1
> 11:07:29.243 DEBUG [SyncThread:0]
> org.apache.zookeeper.server.FinalRequestProcessor - Processing
> request:: sessionid:0x13b622a66870000 type:createSession cxid:0x0
> zxid:0x1 txntype:-10 reqpath:n/a
> 11:07:29.246 DEBUG [SyncThread:0]
> org.apache.zookeeper.server.FinalRequestProcessor -
> sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1
> txntype:-10 reqpath:n/a
> 11:07:29.249 INFO  [SyncThread:0]
> org.apache.zookeeper.server.ZooKeeperServer - Established session
> 0x13b622a66870000 with negotiated timeout 60000 for client
> /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.249 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
> org.apache.zookeeper.ClientCnxn - Session establishment complete on
> server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, sessionid =
> 0x13b622a66870000, negotiated timeout = 60000
> 11:07:29.250 DEBUG [main-EventThread]
> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event:
> type=None, state=SyncConnected, path=null
> 11:07:29.250 DEBUG [main]
> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connected to
> localhost:2181
> 11:08:09.250 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)]
> org.apache.zookeeper.ClientCnxn - Client session timed out, have not
> heard from server in 40000ms for sessionid 0x13b622a66870000, closing
> socket connection and attempting reconnect
> 11:08:09.352 DEBUG [main-EventThread]
> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event:
> type=None, state=Disconnected, path=null
> 11:08:09.352 DEBUG [main-EventThread]
> st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Lost
> connection to localhost:2181
> 11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper -
> Closing session: 0x13b622a66870000
> 11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn
> - Closing client for session: 0x13b622a66870000
> 11:08:09.359 ERROR [main]
> st.ata.vcc.proxy.common.model.RoutePublisherTest - Cannot start
> RoutePublisherTest
> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) ~[test-classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) [test-classes/:na]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng-6.5.2.jar:na]
>    at org.testng.internal.MethodInvocationHelper$2.runConfigurationMethod(MethodInvocationHelper.java:274) [testng-6.5.2.jar:na]
>    at mockit.integration.testng.internal.TestNGRunnerDecorator.run(TestNGRunnerDecorator.java:81) [jmockit-0.999.10.jar:na]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.testng.internal.MethodInvocationHelper.invokeConfigurable(MethodInvocationHelper.java:286) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) [testng-6.5.2.jar:na]
>    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) [testng-6.5.2.jar:na]
>    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) [testng-6.5.2.jar:na]
>    at org.testng.TestRunner.privateRun(TestRunner.java:768) [testng-6.5.2.jar:na]
>    at org.testng.TestRunner.run(TestRunner.java:617) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.run(SuiteRunner.java:240) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1188) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.runSuitesLocally(TestNG.java:1113) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.run(TestNG.java:1025) [testng-6.5.2.jar:na]
>    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115) [surefire-testng-2.12.jar:2.12]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
>    at
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12] Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) ~[classes/:na]
>    ... 44 common frames omitted
> Tests run: 5, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 46.141 sec <<< FAILURE!
> start(st.ata.vcc.proxy.common.model.RoutePublisherUnitTest)  Time elapsed: 45.281 sec  <<< FAILURE!
> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103)
>    at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36)
>    at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35)
>    at
> st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublis
> herUnitTest.java:28) Caused by:
> org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069)
>    at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161)
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98)
>    ... 44 more
>
>
>
>
>
> Any ideas?
>
> Thanks,
>
> Josh

The information contained in this communication may be CONFIDENTIAL and is intended only for the use of the recipient(s) named above.  If you are not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited.  If you have received this communication in error, please notify the sender and delete/destroy the original message and any copy of it from your computer or paper files.

Re: Embedded ZK instance for unit testing

Posted by Jordan Zimmerman <jo...@jordanzimmerman.com>.
Curator has a test ZK server and cluster: curator-test

====================
Jordan Zimmerman

On Dec 3, 2012, at 11:39 AM, Joshua Blatt <jb...@verticloud.com> wrote:

> Hi guys,
>
> I've seen a few threads on why it's a bad idea to try to embed ZK in your app.   I'm not trying to do that for my production app.   I am trying to do that for unit tests.   I could try to mock out ZK but I'm concerned that'd be both a lot of typing and wouldn't, well, test against the real thing.
>
> Has anyone done this before?
>
> When I tried doing this I saw the ZK session request initiated by the unit test go through (after first trying IPv6, then falling back to IPv4), but then the first operation attempted timed out after 40 seconds.   The same test case passes against a 3 node external ZK cluster.
>
> Note that I'm spinning up a new ZK instance for every test run - I've tried inserting a several minute sleep after startup to give it time to initialize, but that didn't make a difference.
>
>
> import java.io.File;
> import java.util.UUID;
> import java.util.concurrent.Semaphore;
> import org.apache.commons.io.FileUtils;
> import org.apache.zookeeper.server.ZooKeeperServerMain;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> /**
> * A single-node embedded zookeeper server. <p>
> * WARNING: This class is only intended for unit testing. It's not production-
> * grade.
> *
> * @author jblatt
> */
> public class EmbeddedZooKeeper extends ZooKeeperServerMain {
>
>    private static final Logger LOGGER =
>            LoggerFactory.getLogger(EmbeddedZooKeeper.class);
>    private final File dataDir = new File(
>            FileUtils.getTempDirectoryPath() + "/"
>            + UUID.randomUUID().toString());
>    private final int clientPort;
>    private final Semaphore isRunning = new Semaphore(0);
>    private Thread thread;
>
>    public EmbeddedZooKeeper(int clientPort) throws ZooKeeperException {
>        this.clientPort = clientPort;
>    }
>
>    public void start() throws ZooKeeperException {
>        try {
>            FileUtils.forceMkdir(dataDir);
>
>            final EmbeddedZooKeeper self = this;
>
>            thread = new Thread() {
>
>                @Override
>                public void run() {
>                    try {
>                        LOGGER.info("Starting ZK server");
>
>                        self.initializeAndRun(new String[]{
>                                    Integer.toString(clientPort),
>                                    dataDir.getAbsolutePath()});
>
>                        LOGGER.info("Started ZK server");
>
>                        isRunning.acquire();
>
>                        LOGGER.info("Stopped ZK server");
>
>                    } catch (Throwable t) {
>                        LOGGER.error("Failure in embedded ZooKeeper", t);
>                    }
>                }
>            };
>
>            thread.start();
>        } catch (Throwable t) {
>            throw new ZooKeeperException("Cannot start embedded zookeeper", t);
>        }
>    }
>
>    public void stop() throws ZooKeeperException {
>        try {
>            LOGGER.info("Stopping ZK server");
>
>            super.shutdown();
>
>            isRunning.release();
>
>            thread.join();
>        } catch (Throwable t) {
>            throw new ZooKeeperException("Cannot stop embedded zookeeper", t);
>        } finally {
>            // Unconditionally try to cleanup tmp dirs even if this is done
>            // on a running ZK server.   We don't want to clutter up the user's
>            // local fs.
>
>            try {
>                FileUtils.deleteDirectory(dataDir);
>            } catch (Throwable t) {
>                LOGGER.error("Cannot cleanup tmp dirs {}",
>                        dataDir.getAbsolutePath());
>            }
>        }
>    }
> }
>
> Log output:
>
> 11:07:24.064 INFO  [main] st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Begin EmbeddedZooKeeperForUnitTests.start()
> 11:07:24.066 INFO  [main] st.ata.vcc.proxy.common.model.EmbeddedZooKeeperForUnitTest - Embedded ZooKeeper started
> 11:07:24.066 INFO  [Thread-1] st.ata.vcc.control.core.zookeeper.EmbeddedZooKeeper - Starting ZK server
> 11:07:24.086 INFO  [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - Begin RoutePublisherTest.start()
> 11:07:24.087 DEBUG [main] st.ata.vcc.proxy.common.model.RoutePublisher - Starting ZK connection on st.ata.vcc.proxy.common.model.RoutePublisher@6b08d7cf
> 11:07:24.087 INFO  [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connecting to localhost:2181
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:host.name=10.66.225.162
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.version=1.7.0_05
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
> 11:07:24.093 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:java.compiler=<NA>
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.name=Mac OS X
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.arch=x86_64
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:os.version=10.8.2
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.name=jblatt
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.home=/Users/jblatt
> 11:07:24.094 INFO  [main] org.apache.zookeeper.ZooKeeper - Client environment:user.dir=/Users/jblatt/dev/proxy/common
> 11:07:24.095 INFO  [main] org.apache.zookeeper.ZooKeeper - Initiating client connection, connectString=localhost:2181 sessionTimeout=300000 watcher=st.ata.vcc.control.core.zookeeper.ZooKeeperConnection$ConnectionWatcher@457b9183
> 11:07:24.100 DEBUG [main] org.apache.zookeeper.ClientCnxn - zookeeper.disableAutoWatchReset is false
> 11:07:24.114 INFO  [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxn - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
> 11:07:24.125 WARN  [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxn - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
> java.net.ConnectException: Connection refused
>    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:701) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:350) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1068) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
> 11:07:24.125 DEBUG [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown input
> java.nio.channels.ClosedChannelException: null
>    at sun.nio.ch.SocketChannelImpl.shutdownInput(SocketChannelImpl.java:762) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketAdaptor.shutdownInput(SocketAdaptor.java:421) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:189) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) [zookeeper-3.4.5.jar:3.4.5-1392090]
> 11:07:24.126 DEBUG [main-SendThread(localhost:2181)] org.apache.zookeeper.ClientCnxnSocketNIO - Ignoring exception during shutdown output
> java.nio.channels.ClosedChannelException: null
>    at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:779) ~[na:1.7.0_05]
>    at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:429) ~[na:1.7.0_05]
>    at org.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:196) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1157) [zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1097) [zookeeper-3.4.5.jar:3.4.5-1392090]
> log4j:WARN No appenders could be found for logger (org.apache.log4j.jmx.HierarchyDynamicMBean).
> log4j:WARN Please initialize the log4j system properly.
> log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
> 11:07:24.135 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServerMain - Starting server
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:host.name=10.66.225.162
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.version=1.7.0_05
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.vendor=Oracle Corporation
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.home=/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre
> 11:07:24.139 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.class.path=/Users/jblatt/dev/proxy/common/target/test-classes:/Users/jblatt/dev/proxy/common/target/classes:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/servlet-api/3.0.pre4/servlet-api-3.0.pre4.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-ssl/7.0.0.pre5/jetty-ssl-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-security/7.0.0.pre5/jetty-security-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/org/mortbay/jetty/jetty-xml/7.0.0.pre5/jetty-xml-7.0.0.pre5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-grizzly2/1.12/jersey-grizzly2-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-server/1.12/jersey-server-1.12.jar:/Users/jblatt/.m2/repository/asm/asm/3.1/asm-3.1.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-core/1.12/jersey-core-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-client/1.12/jersey-client-1.12.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-json/1.12/jersey-json-1.12.jar:/Users/jblatt/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/jblatt/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/jblatt/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/jblatt/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/jblatt/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.7/jackson-core-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.7/jackson-mapper-asl-1.9.7.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.7/jackson-xc-1.9.7.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-multipart/1.12/jersey-multipart-1.12.jar:/Users/jblatt/.m2/repository/org/jvnet/mimepull/1.6/mimepull-1.6.jar:/Users/jblatt/.m2/repository/com/sun/jersey/contribs/jersey-non-blocking-client/1.12/jersey-non-blocking-client-1.12.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http/2.2.9/grizzly-http-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-framework/2.2.9/grizzly-framework-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/gmbal/gmbal-api-only/3.0.0-b023/gmbal-api-only-3.0.0-b023.jar:/Users/jblatt/.m2/repository/org/glassfish/external/management-api/3.0.0-b012/management-api-3.0.0-b012.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-server/2.2.9/grizzly-http-server-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-rcm/2.2.9/grizzly-rcm-2.2.9.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-http-client/1.1/grizzly-http-client-1.1.jar:/Users/jblatt/.m2/repository/org/glassfish/grizzly/grizzly-websockets/2.2.5/grizzly-websockets-2.2.5.jar:/Users/jblatt/.m2/repository/com/sun/jersey/jersey-servlet/1.12/jersey-servlet-1.12.jar:/Users/jblatt/.m2/repository/org/apache/directory/studio/org.apache.commons.io/2.1/org.apache.commons.io-2.1.jar:/Users/jblatt/.m2/repository/commons-io/commons-io/2.1/commons-io-2.1.jar:/Users/jblatt/.m2/repository/commons-daemon/commons-daemon/1.0.10/commons-daemon-1.0.10.jar:/Users/jblatt/.m2/repository/ch/ethz/ganymed/ganymed-ssh2/build210/ganymed-ssh2-build210.jar:/Users/jblatt/.m2/repository/org/slf4j/jul-to-slf4j/1.6.6/jul-to-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-classic/1.0.6/logback-classic-1.0.6.jar:/Users/jblatt/.m2/repository/ch/qos/logback/logback-core/1.0.6/logback-core-1.0.6.jar:/Users/jblatt/.m2/repository/com/amazonaws/aws-java-sdk/1.3.11/aws-java-sdk-1.3.11.jar:/Users/jblatt/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpclient/4.2-beta1/httpclient-4.2-beta1.jar:/Users/jblatt/.m2/repository/org/apache/httpcomponents/httpcore/4.2-beta1/httpcore-4.2-beta1.jar:/Users/jblatt/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar:/Users/jblatt/.m2/repository/st/ata/control/core/0.2.67/core-0.2.67-tests.jar:/Users/jblatt/.m2/repository/st/ata/vc/task/task/0.5.156/task-0.5.156.jar:/Users/jblatt/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.7/jackson-jaxrs-1.9.7.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar:/Users/jblatt/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/jblatt/.m2/repository/com/ning/async-http-client/1.7.5/async-http-client-1.7.5.jar:/Users/jblatt/.m2/repository/io/netty/netty/3.4.4.Final/netty-3.4.4.Final.jar:/Users/jblatt/.m2/repository/org/slf4j/log4j-over-slf4j/1.6.6/log4j-over-slf4j-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/zookeeper/zookeeper/3.4.5/zookeeper-3.4.5.jar:/Users/jblatt/.m2/repository/jline/jline/0.9.94/jline-0.9.94.jar:/Users/jblatt/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar:/Users/jblatt/.m2/repository/org/jboss/netty/netty/3.2.2.Final/netty-3.2.2.Final.jar:/Users/jblatt/.m2/repository/org/testng/testng/6.5.2/testng-6.5.2.jar:/Users/jblatt/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/jblatt/.m2/repository/com/beust/jcommander/1.12/jcommander-1.12.jar:/Users/jblatt/.m2/repository/org/yaml/snakeyaml/1.6/snakeyaml-1.6.jar:/Users/jblatt/.m2/repository/mockit/jmockit/0.999.10/jmockit-0.999.10.jar:/Users/jblatt/.m2/repository/org/jacoco/org.jacoco.agent/0.5.7.201204190339/org.jacoco.agent-0.5.7.201204190339-runtime.jar:/Users/jblatt/.m2/repository/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-testng-utils/2.12/surefire-testng-utils-2.12.jar:/Users/jblatt/.m2/repository/org/apache/maven/surefire/surefire-grouper/2.12/surefire-grouper-2.12.jar:
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.library.path=/Users/jblatt/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.io.tmpdir=/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:java.compiler=<NA>
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.name=Mac OS X
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.arch=x86_64
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:os.version=10.8.2
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.name=jblatt
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.home=/Users/jblatt
> 11:07:24.140 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - Server environment:user.dir=/Users/jblatt/dev/proxy/common
> 11:07:24.142 DEBUG [Thread-1] org.apache.zookeeper.server.persistence.FileTxnSnapLog - Opening datadir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748 snapDir:/var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748
> 11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - tickTime set to 3000
> 11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - minSessionTimeout set to -1
> 11:07:24.145 INFO  [Thread-1] org.apache.zookeeper.server.ZooKeeperServer - maxSessionTimeout set to -1
> 11:07:24.151 INFO  [Thread-1] org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port 0.0.0.0/0.0.0.0:2181
> 11:07:24.162 INFO  [Thread-1] org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting: 0x0 to /var/folders/zq/76dngxt50rd1hzys0bnzhwg40000gn/T/51bc2e1d-270b-42df-bb82-6330a1081748/version-2/snapshot.0
> 11:07:29.230 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Opening socket connection to server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181. Will not attempt to authenticate using SASL (unknown error)
> 11:07:29.231 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Socket connection established to fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, initiating session
> 11:07:29.231 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.NIOServerCnxnFactory - Accepted socket connection from /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.232 DEBUG [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Session establishment request sent on fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181
> 11:07:29.235 DEBUG [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.ZooKeeperServer - Session establishment request from client /fe80:0:0:0:0:0:0:1%1:50774 client's lastZxid is 0x0
> 11:07:29.236 INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181] org.apache.zookeeper.server.ZooKeeperServer - Client attempting to establish new session at /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.238 INFO  [SyncThread:0] org.apache.zookeeper.server.persistence.FileTxnLog - Creating new log file: log.1
> 11:07:29.243 DEBUG [SyncThread:0] org.apache.zookeeper.server.FinalRequestProcessor - Processing request:: sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 reqpath:n/a
> 11:07:29.246 DEBUG [SyncThread:0] org.apache.zookeeper.server.FinalRequestProcessor - sessionid:0x13b622a66870000 type:createSession cxid:0x0 zxid:0x1 txntype:-10 reqpath:n/a
> 11:07:29.249 INFO  [SyncThread:0] org.apache.zookeeper.server.ZooKeeperServer - Established session 0x13b622a66870000 with negotiated timeout 60000 for client /fe80:0:0:0:0:0:0:1%1:50774
> 11:07:29.249 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Session establishment complete on server fe80:0:0:0:0:0:0:1%1/fe80:0:0:0:0:0:0:1%1:2181, sessionid = 0x13b622a66870000, negotiated timeout = 60000
> 11:07:29.250 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, state=SyncConnected, path=null
> 11:07:29.250 DEBUG [main] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Connected to localhost:2181
> 11:08:09.250 INFO  [main-SendThread(fe80:0:0:0:0:0:0:1%1:2181)] org.apache.zookeeper.ClientCnxn - Client session timed out, have not heard from server in 40000ms for sessionid 0x13b622a66870000, closing socket connection and attempting reconnect
> 11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - ZK event: type=None, state=Disconnected, path=null
> 11:08:09.352 DEBUG [main-EventThread] st.ata.vcc.control.core.zookeeper.ZooKeeperConnection - Lost connection to localhost:2181
> 11:08:09.352 DEBUG [main-EventThread] org.apache.zookeeper.ZooKeeper - Closing session: 0x13b622a66870000
> 11:08:09.353 DEBUG [main-EventThread] org.apache.zookeeper.ClientCnxn - Closing client for session: 0x13b622a66870000
> 11:08:09.359 ERROR [main] st.ata.vcc.proxy.common.model.RoutePublisherTest - Cannot start RoutePublisherTest
> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35) ~[test-classes/:na]
>    at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28) [test-classes/:na]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) [testng-6.5.2.jar:na]
>    at org.testng.internal.MethodInvocationHelper$2.runConfigurationMethod(MethodInvocationHelper.java:274) [testng-6.5.2.jar:na]
>    at mockit.integration.testng.internal.TestNGRunnerDecorator.run(TestNGRunnerDecorator.java:81) [jmockit-0.999.10.jar:na]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.testng.internal.MethodInvocationHelper.invokeConfigurable(MethodInvocationHelper.java:286) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) [testng-6.5.2.jar:na]
>    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) [testng-6.5.2.jar:na]
>    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175) [testng-6.5.2.jar:na]
>    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107) [testng-6.5.2.jar:na]
>    at org.testng.TestRunner.privateRun(TestRunner.java:768) [testng-6.5.2.jar:na]
>    at org.testng.TestRunner.run(TestRunner.java:617) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunner.run(SuiteRunner.java:240) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) [testng-6.5.2.jar:na]
>    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1188) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.runSuitesLocally(TestNG.java:1113) [testng-6.5.2.jar:na]
>    at org.testng.TestNG.run(TestNG.java:1025) [testng-6.5.2.jar:na]
>    at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101) [surefire-testng-2.12.jar:2.12]
>    at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115) [surefire-testng-2.12.jar:2.12]
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_05]
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_05]
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_05]
>    at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_05]
>    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) [surefire-api-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) [surefire-booter-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) [surefire-booter-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) [surefire-booter-2.12.jar:2.12]
>    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) [surefire-booter-2.12.jar:2.12]
> Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069) ~[zookeeper-3.4.5.jar:3.4.5-1392090]
>    at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161) ~[classes/:na]
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98) ~[classes/:na]
>    ... 44 common frames omitted
> Tests run: 5, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 46.141 sec <<< FAILURE!
> start(st.ata.vcc.proxy.common.model.RoutePublisherUnitTest)  Time elapsed: 45.281 sec  <<< FAILURE!
> st.ata.vcc.proxy.common.model.RouteException: Cannot start ZK connection
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:103)
>    at st.ata.vcc.proxy.common.model.RoutePublisher.start(RoutePublisher.java:36)
>    at st.ata.vcc.proxy.common.model.RoutePublisherTest.start(RoutePublisherTest.java:35)
>    at st.ata.vcc.proxy.common.model.RoutePublisherUnitTest.start(RoutePublisherUnitTest.java:28)
> Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /proxy
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
>    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
>    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069)
>    at st.ata.vcc.proxy.common.model.RouteBase.mkdir_p(RouteBase.java:161)
>    at st.ata.vcc.proxy.common.model.RouteBase.start(RouteBase.java:98)
>    ... 44 more
>
>
>
>
>
> Any ideas?
>
> Thanks,
>
> Josh