Release 3.5.2 - 06/29/2016

BUGFIXES:

  ZOOKEEPER-2256: Zookeeper is not using specified JMX port in zkEnv.sh
  (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2264: Wrong error message when secureClientPortAddress is
  configured but secureClientPort is not configured (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2269: NullPointerException in RemotePeerBean
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2245: SimpleSysTest test cases fails (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2279: QuorumPeer loadDataBase() error message is incorrect
  (Arshad Mohammad via rakeshr)

  ZOOKEEPER-1803: Add description for pzxid in programmer's guide
  (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2253: C asserts ordering of ping requests, while Java client does not
  (Chris Chen via rgs)

  ZOOKEEPER-2244: On Windows zookeeper fails to restart (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2268: Zookeeper doc creation fails on windows
  (Arshad Mohammad via cnauroth)

  ZOOKEEPER-2281: ZK Server startup fails if there are spaces in the JAVA_HOME
  path (Neha Bathra via cnauroth)

  ZOOKEEPER-1460: IPv6 literal address not supported for quorum members
  (Joseph Walton via cnauroth)

  ZOOKEEPER-2239: JMX State from LocalPeerBean incorrect (Kevin Lee via rakeshr)

  ZOOKEEPER-2302: Some test cases are not running because wrongly named
  (Arshad Mohammad via fpj)

  ZOOKEEPER-2142: JMX ObjectName is incorrect for observers (Edward Ribeiro
  via michim)

  ZOOKEEPER-1872: QuorumPeer is not shutdown in few cases
  (Rakesh R. via rgs)

  ZOOKEEPER-2211: PurgeTxnLog does not correctly purge when snapshots and
  logs are at different locations (Arshad Mohammad via rgs)

  ZOOKEEPER-2227: stmk four-letter word fails execution at server while
  reading trace mask argument (Chris Nauroth via rgs)

  ZOOKEEPER-1853: zkCli.sh can't issue a CREATE command containing
  spaces in the data (Ryan Lamore via rgs)

  ZOOKEEPER-2229: Several four-letter words are undocumented
  (Chris Nauroth via rgs)

  ZOOKEEPER-1929: std::length_error on update children
  (Charles Strahan via rgs)

  ZOOKEEPER-1371: Remove dependency on log4j in the source code
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2329: Clear javac and javadoc warning from zookeeper
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2330: ZooKeeper close API does not close Login thread
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2335: Java Compilation Error in ClientCnxn.java
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2311: assert in setup_random
  (Marshall McMullen via rgs)

  ZOOKEEPER-2304: JMX ClientPort from ZooKeeperServerBean incorrect
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2301: QuorumPeer does not listen on passed client IP in the constructor
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2299: NullPointerException in LocalPeerBean for ClientAddress
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2295: TGT refresh time logic is wrong
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2340: JMX is disabled even if JMXDISABLE is false
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2252: Random test case failure in
  org.apache.zookeeper.test.StaticHostProviderTest (Timothy Ward via cnauroth)

  ZOOKEEPER-1029: C client bug in zookeeper_init (if bad hostname is given)
  (fpj via cnauroth)

  ZOOKEEPER-412: checkstyle target fails trunk build (Akihiro Suda via cnauroth)

  ZOOKEEPER-2360: Update commons collections version used by tests/releaseaudit
  (phunt via cnauroth)

  ZOOKEEPER-2243: Supported platforms is completely out of date (cnauroth)

  ZOOKEEPER-2375: Prevent multiple initialization of login object in each
  ZooKeeperSaslClient instance (yuemeng via rakeshr)

  ZOOKEEPER-2379: recent commit broke findbugs qabot check
  (rakeshr via cnauroth)

  ZOOKEEPER-1991 zkServer.sh returns with a zero exit status when a
  ZooKeeper process is already running (gsbiju via phunt)

  ZOOKEEPER-1604 remove rpm/deb/... packaging (cnauroth via phunt

  ZOOKEEPER-2294 Ant target generate-clover-reports is broken
  (charlie via phunt)

  ZOOKEEPER-2378 upgrade ivy to recent version (phunt)

  ZOOKEEPER-2373 Licenses section missing from pom file (phunt)

  ZOOKEEPER-2087 Few UX improvements in ZooInspector
  (Adam Dudczak via phunt)

  ZOOKEEPER-2133 zkperl: Segmentation fault if getting a node with
  null value (Botond Hejj via phunt)

  ZOOKEEPER-2283 traceFile property is not used in the ZooKeeper, it
  should be removed from documentation (Arshad Mohammad via phunt)

  ZOOKEEPER-2385 Zookeeper trunk build is failing on windows
  (Arshad Mohammad via phunt)

  ZOOKEEPER-2388 Unit tests failing on Solaris (Arshad Mohammad via phunt)

  ZOOKEEPER-2392 Update netty to 3.7.1.Final (Hendy Irawan via phunt)

  ZOOKEEPER-2393: Revert run-time dependency on log4j and slf4j-log4j12
  (Arshad Mohammad via cnauroth)

  ZOOKEEPER-2195 fsync.warningthresholdms in zoo.cfg not working
  (Biju Nair via phunt)

  ZOOKEEPER-2364: "ant docs" fails on branch-3.5 due to missing releasenotes.xml.
  (phunt via cnauroth)
  
  ZOOKEEPER-2141: ACL cache in DataTree never removes entries (Adam Milne-Smith via camille)

  ZOOKEEPER-2413: ContainerManager doesn't close the Timer it
  creates when stop() is called (Jordan via fpj) 

  ZOOKEEPER-2423: Upgrade Netty version due to security vulnerability
  (CVE-2014-3488) (Michael Han via phunt)

  ZOOKEEPER-2405: getTGT() in Login.java mishandles confidential
  information (Michael Han via phunt)

  ZOOKEEPER-2137: Make testPortChange() less flaky
  (Michael Han via phunt)

  ZOOKEEPER-2297: NPE is thrown while creating "key manager" and "trust manager"
  (Arshad Mohammad via fpj)

  ZOOKEEPER-2380: Deadlock between leader shutdown and forwarding ACK to the
  leader (Arshad Mohammad via cnauroth)

  ZOOKEEPER-2366: Reconfiguration of client port causes a socket leak.
  (fpj via cnauroth)

  ZOOKEEPER-2458: Remove license file for servlet-api dependency
  (fpj via phunt)

  ZOOKEEPER-2459: Update NOTICE file with Netty notice
  (fpj via phunt)

IMPROVEMENTS:

  ZOOKEEPER-2270: Allow MBeanRegistry to be overridden for better unit tests
  (Jordan Zimmerman via rgs)

  ZOOKEEPER-2040: Server to log underlying cause of SASL connection problems.
  (Steve Loughran via cnauroth)

  ZOOKEEPER-2315: Change client connect zk service timeout log level from Info
  to Warn level (Lin Yiqun via rgs)

  ZOOKEEPER-2240: Make the three-node minimum more explicit in documentation
  and on website (Shawn Heisey via rgs)

  ZOOKEEPER-2326: Include connected server address:port in log
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2306: Remove file delete duplicate code from test code
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2300: Expose SecureClientPort and SecureClientAddress JMX properties
  (Arshad Mohammad via rgs)

  ZOOKEEPER-2240 Make the three-node minimum more explicit in 
  documentation and on website (Shawn Heisey and Arshad Mohammad via phunt)
 
  ZOOKEEPER-2139: Support multiple ZooKeeper client with different configurations
  in a single JVM (Arshad Mohammad via fpj)

  ZOOKEEPER-2402: Document client side properties (Arshad Mohammad via fpj)

  ZOOKEEPER-2410: add time unit to 'ELECTION TOOK' log.info message
  (Christine Poerschke via phunt)

  ZOOKEEPER-2433: ZooKeeperSaslServer: allow user principals in
  subject (Andy B via phunt)

Release 3.5.1 - 07/27/2015

NEW FEATURES:
  ZOOKEEPER-2069 Netty Support for ClientCnxnSocket (Hongchao via fpj)

  ZOOKEEPER-2119 Netty client docs (Hongchao via rakeshr)

  ZOOKEEPER-2125 SSL on Netty client-server communication (Hongchao, Ian Dimayuga via rakeshr)

  ZOOKEEPER-2123 Provide implementation of X509 AuthenticationProvider
  (Ian Dimayuga via rakeshr)

  ZOOKEEPER-2163: Introduce new ZNode type: container (Jordan Zimmerman via rgs)

BUGFIXES:
  ZOOKEEPER-1784 wrong check for COMMITANDACTIVATE in observer code, Learner.java (rgs via shralex).

  ZOOKEEPER-2047 testTruncationNullLog fails on windows (flavio via rakeshr)

  ZOOKEEPER-2026 Startup order in ServerCnxnFactory-ies is wrong (Stevo Slavic via rakeshr)

  ZOOKEEPER-2049 Yosemite build failure: htonll conflict (Till Toenshoff via
  michim)

  ZOOKEEPER-2052 Unable to delete a node when the node has no children
  (Hongchao Deng and Yip Ng via rakeshr)
 
  ZOOKEEPER-2060 Trace bug in NettyServerCnxnFactory (Ian via fpj)

  ZOOKEEPER-2064 Prevent resource leak in various classes (Ted Yu via fpj)

  ZOOKEEPER-2072 Netty Server Should Configure Child Channel Pipeline By Specifying 
  ChannelPipelineFactory (Hongchao via rakeshr)

  ZOOKEEPER-2111 Not isAlive states should be synchronized in ClientCnxn 
  (Hongchao via rakeshr)

  ZOOKEEPER-1366 Zookeeper should be tolerant of clock adjustments (Hongchao
  Deng via michim)

  ZOOKEEPER-1949 recipes jar not included in the distribution package (Rakesh R
  via michim)

  ZOOKEEPER-2114 jute generated allocate_* functions are not externally visible
  (Tim Crowder via michim)

  ZOOKEEPER-2073 Memory leak on zookeeper_close (Dave Gosselin via michim)

  ZOOKEEPER-1952 Default log directory and file name can be changed 
  (nijel, Hari Krishna Dara via rakeshr)

  ZOOKEEPER-2134 AsyncHammerTest.testHammer fails intermittently
  (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-2137 Make testPortChange() less flaky (Hongchao Deng via michim)

  ZOOKEEPER-1893. automake: use serial-tests option (michim via camille)

  ZOOKEEPER-1865 Fix retry logic in Learner.connectToLeader() (Edward Carter
  via michim)

  ZOOKEEPER-2109 Typo in src/c/src/load_gen.c (surendra singh lilhore via rakeshr)

  ZOOKEEPER-2146 BinaryInputArchive readString should check length before
  allocating memory (Hongchao Deng via michim)

  ZOOKEEPER-2056 Zookeeper 3.4.x and 3.5.0-alpha is not OSGi compliant
  (Deiwin Sarjas via rgs)

  ZOOKEEPER-2157 Upgrade option should be removed from zkServer.sh usage
  (J.Andreina via hdeng)

  ZOOKEEPER-1506 Re-try DNS hostname -> IP resolution if node connection fails
  (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-2029 Leader.LearnerCnxAcceptor should handle exceptions in run()
  (Rakesh R, Asad Saeed via hdeng)

  ZOOKEEPER-1626 Zookeeper C client should be tolerant of clock adjustments
  (Colin Patrick McCabe via michim)
  
  ZOOKEEPER-2173. ZK startup failure should be handled with proper error message
  (J.Andreina via camille)

  ZOOKEEPER-2174 JUnit4ZKTestRunner logs test failure for all exceptions even
  if the test method is annotated with an expected exception (Chris Nauroth
  via rgs)

  ZOOKEEPER-2124 Allow Zookeeper version string to have underscore '_'
  (Chris Nauroth via rgs)

  ZOOKEEPER-2062 RemoveWatchesTest takes forever to run (Chris Nauroth via rakeshr)

  ZOOKEEPER-2171 avoid reverse lookups in QuorumCnxManager (rgs via michim)

  ZOOKEEPER-2182 Several test suites are not running during pre-commit, because their names do not end with "Test". (Chris Nauroth via hdeng)

  ZOOKEEPER-2190 In StandaloneDisabledTest, testReconfig() shouldn't take
  leaving servers as joining servers (Hongchao Deng via rgs)

  ZOOKEEPER-1077: C client lib doesn't build on Solaris (Chris Nauroth via rgs)

  ZOOKEEPER-2156: If JAVA_HOME is not set zk startup and fetching status command execution
  result misleads user (J.Andreina via rakeshr)

  ZOOKEEPER-2179: Typo in Watcher.java (Archana T via rgs)

  ZOOKEEPER-2178 Native client fails compilation on Windows. (Chris Nauroth via michim)

  ZOOKEEPER-2197 non-ascii character in FinalRequestProcessor.java
  (Michi Mutsuzaki via rgs)

  ZOOKEEPER-2096: C client builds with incorrect error codes in VisualStudio 2010+
  (Vitaly Stakhovsky via rgs)

  ZOOKEEPER-2194: Let DataNode.getChildren() return an unmodifiable view of its children set
  (Hitoshi Mitake via rgs)

  ZOOKEEPER-2204: LearnerSnapshotThrottlerTest.testHighContentionWithTimeout fails occasionally
  (Donny Nadolny via rgs)

  ZOOKEEPER-2201: Network issues can cause cluster to hang due to near-deadlock
  (Donny Nadolny via rgs)

  ZOOKEEPER-2213: Empty path in Set crashes server and prevents restart
  (Hongchao Deng via rgs)

  ZOOKEEPER-706: Large numbers of watches can cause session re-establishment to fail
  (Chris Thunes via rgs)

  ZOOKEEPER-2212: distributed race condition related to QV version
  (Akihiro Suda via rgs)

  ZOOKEEPER-2210: clock_gettime is not available in OS X
  (Michi Mutsuzaki via rgs)

  ZOOKEEPER-2193: reconfig command completes even if parameter is wrong obviously
  (Yasuhito Fukuda via rgs)

  ZOOKEEPER-2221: Zookeeper JettyAdminServer server should start on configured IP
  (Surendra Singh Lilhore via rgs)

  ZOOKEEPER-2224: Four letter command hangs when network is slow
  (Arshad Mohammad via rakeshr)

  ZOOKEEPER-2223: support method-level JUnit testcase
  (Akihiro Suda via rgs)

  ZOOKEEPER-2235 License update (fpj via michim)

IMPROVEMENTS:
  ZOOKEEPER-1660 Documentation for Dynamic Reconfiguration (Reed Wanderman-Milne via shralex)

  ZOOKEEPER-2030 dynamicConfigFile should have an absolute path, not a relative
  path, to the dynamic configuration file (Alexander Shraer via michim)

  ZOOKEEPER-1917 Apache Zookeeper logs cleartext admin passwords (fpj via michim)

  ZOOKEEPER-1948 Enable JMX remote monitoring (Biju Nair via rakeshr)

  ZOOKEEPER-2079 Stop daemon with "kill" rather than "kill -9" (Guillaume ALAUX
  via michim)

  ZOOKEEPER-1963 Make JDK 7 the minimum requirement for Zookeeper 
  (Hongchao via fpj)

  ZOOKEEPER-2110 Typo fixes in the ZK documentation. (Jeffrey Schroeder via rakeshr)

  ZOOKEEPER-1907 Improve Thread handling (Rakesh R via michim)

  ZOOKEEPER-2107 zookeeper client should support custom HostProviders
  (Robert Kamphuis via rakeshr)

  ZOOKEEPER-2149 Logging of client address when socket connection established
  (Hongchao Deng via michim)

  ZOOKEEPER-2176 Unclear error message should be info not error
  (rgs via hdeng)

  ZOOKEEPER-2153 X509 Authentication Documentation
  (Ian Dimayuga via hdeng)

  ZOOKEEPER-2186 QuorumCnxManager#receiveConnection may crash with random input
  (rgs via michim)

  ZOOKEEPER-2183 Concurrent Testing Processes and Port Assignments
  (Chris Nauroth via hdeng)

  ZOOKEEPER-2126 Improve exit log messsage of EventThread and SendThread by
  adding SessionId (surendra singh lilhore via rakeshr)

  ZOOKEEPER-2191: Continue supporting prior Ant versions that don't implement the
  threads attribute for the JUnit task (Chris Nauroth via rakeshr)

  ZOOKEEPER-2187: remove duplicated code between CreateRequest{,2}
  (Raul Gutierrez Segales via hdeng)

  ZOOKEEPER-2098: QuorumCnxManager: use BufferedOutputStream for initial msg
  (Raul Gutierrez Segales via hdeng)

  ZOOKEEPER-2198 Set default test.junit.threads to 1 (Chris Nauroth via michim)

  ZOOKEEPER-2205: Log type of unexpected quorum packet in learner handler loop
  (Hitoshi Mitake via rgs)

  ZOOKEEPER-2206: Add missing packet types to LearnerHandler.packetToString()
  (Hitoshi Mitake via rgs)

  ZOOKEEPER-2207: Enhance error logs with LearnerHandler.packetToString()
  (Hitoshi Mitake via rgs)

  ZOOKEEPER-2208: Log type of unexpected quorum packet in observer loop
  (Akihiro Suda via rgs)

  ZOOKEEPER-2214: Findbugs warning: LearnerHandler.packetToString Dead
  store to local variable (Hongchao Deng via rgs)

  ZOOKEEPER-2185: Run server with -XX:+HeapDumpOnOutOfMemoryError and
  -XX:OnOutOfMemoryError='kill %p' (Chris Nauroth via rgs)

  ZOOKEEPER-2140: NettyServerCnxn and NIOServerCnxn code should be improved
  (Arshad Mohammad via rgs)

  ZOOKEEPER-1423: 4lw and jmx should expose the size of the datadir/datalogdir
  (Edward Ribeiro via rgs)

Release 3.5.0 - 8/4/2014

NEW FEATURES:
  ZOOKEEPER-1994. Auto-backup configuration files; config version becomes part of filename (Hongchao Deng via shralex)

  ZOOKEEPER-1355. Add zk.updateServerList(newServerList) (Alex Shraer, Marshall McMullen via fpj)

  ZOOKEEPER-1572. Add an async (Java) interface for multi request (Sijie Guo via camille)

  ZOOKEEPER-107. Allow dynamic changes to server cluster membership (Alex Shraer via breed)

  ZOOKEEPER-1400. Allow logging via callback instead of raw FILE pointer
  (Marshall McMullen via michim)

  ZOOKEEPER-1147. Add support for local sessions (Jay Shrauner, thawan via thawan)

  ZOOKEEPER-1691. Add a flag to disable standalone mode (Helen Hastings via michim)

  ZOOKEEPER-442. need a way to remove watches that are no longer of
  interest (Rakesh R, Daniel Gómez Ferro via phunt)

  ZOOKEEPER-1830. Support command line shell for removing watches
  (Rakesh R via michim)

  ZOOKEEPER-1887. C implementation of removeWatches (Raul Gutierrez Segales via
  michim)

  ZOOKEEPER-1928. add configurable throttling to the number of snapshots
  concurrently sent by a leader (Edward Carter via fpj)

  ZOOKEEPER-827. enable r/o mode in C client library (rgs via fpj)

  ZOOKEEPER-1346. Add Jetty HTTP server support for four letter words.
  (Skye Wanderman-Milne, Bill Havanki via phunt)

BUGFIXES:
  ZOOKEEPER-2032. Cleaning up resources in ReconfigBackupTest (Hongchao Deng via shralex)

  ZOOKEEPER-2013. Typos in programmer guide. (Tim Chambers via Alex Shraer)

  ZOOKEEPER-2006. Standalone mode won't take client port from dynamic config. (Hongchao Deng via Alex Shraer)

  ZOOKEEPER-2008. Missing leader election port in system test. (Kfir Lev-Ari via Alex Shraer).

  ZOOKEEPER-1992. Backward compatibility of the static configuration file (Hongchao Deng via Alex Shraer).

  ZOOKEEPER-1900. NullPointerException in truncate (Camille Fournier)

  ZOOKEEPER-786. Exception in ZooKeeper.toString
  (Thomas Koch via phunt)

  ZOOKEEPER-1191. Synchronization issue - wait not in guarded block (Alex Shraer via breed)

  ZOOKEEPER-1192. Leader.waitForEpochAck() checks waitingForNewEpoch instead of checking electionFinished (Alex Shraer via breed)

  ZOOKEEPER-1203. Zookeeper systest is missing Junit Classes
  (Prashant Gokhale via phunt)
  
  ZOOKEEPER-1174. FD leak when network unreachable (Ted Dunning via camille)

  ZOOKEEPER-1206. Sequential node creation does not use always use
  digits in node name given certain Locales. (Mark Miller via phunt)

  ZOOKEEPER-1212. zkServer.sh stop action is not conformat with LSB
  para 20.2 Init Script Actions (Roman Shaposhnik via phunt)

  ZOOKEEPER-1190. ant package is not including many of the bin scripts
  in the package (zkServer.sh for example) (Eric Yang via phunt)

  ZOOKEEPER-1241. Typo in ZooKeeper Recipes and Solutions
  documentation (Jingguo Yao via phunt)

  ZOOKEEPER-1220. ./zkCli.sh 'create' command is throwing
  ArrayIndexOutOfBoundsException (kavita sharma via phunt)

  ZOOKEEPER-1256. ClientPortBindTest is failing on Mac OS X
  (Daniel Gómez Ferro via phunt)
  
  ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing intermittently. (phunt via camille)
  
  ZOOKEEPER-1246. Dead code in PrepRequestProcessor catch Exception block. (camille)

  ZOOKEEPER-1271. testEarlyLeaderAbandonment failing on solaris -
  clients not retrying connection (mahadev via phunt)
  
  ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing 
  intermittently. (breed, camille and Alex Shraer via camille)
  
  ZOOKEEPER-1282. Learner.java not following Zab 1.0 protocol - 
  setCurrentEpoch should be done upon receipt of NEWLEADER 
  (before acking it) and not upon receipt of UPTODATE (breed via camille)
  
  ZOOKEEPER-1291. AcceptedEpoch not updated at leader before it proposes the epoch to followers. (Alex Shraer via camille)

  ZOOKEEPER-1208. Ephemeral node not removed after the client session is long gone. (phunt via camille)
 
  ZOOKEEPER-1239. add logging/stats to identify fsync stalls. (phunt via camille)

  ZOOKEEPER-1311. ZooKeeper test jar is broken (Ivan Kelly via phunt)
 
  ZOOKEEPER-1305. zookeeper.c:prepend_string func can dereference null ptr. 
  (Daniel Lescohier via mahadev)

  ZOOKEEPER-1262. Documentation for Lock recipe has major flaw.
  (Jordan Zimmerman via mahadev)

  ZOOKEEPER-1316. zookeeper_init leaks memory if chroot is just '/'.
  (Akira Kitada via mahadev)

  ZOOKEEPER-1315. zookeeper_init always reports sessionPasswd=<hidden>.
  (Akira Kitada via mahadev)

  ZOOKEEPER-1317. Possible segfault in zookeeper_init. (Akira Kitada via mahadev)

  ZOOKEEPER-1319. Missing data after restarting+expanding a cluster.
  (phunt and breed via mahadev)

  ZOOKEEPER-1269. Multi deserialization issues. (Camille Fournier via mahadev)

  ZOOKEEPER-1323. c client doesn't compile on freebsd
  (michi mutsuzaki via phunt)

  ZOOKEEPER-1333. NPE in FileTxnSnapLog when restarting a cluster.
  (Patrick Hunt via mahadev)

  ZOOKEEPER-1331. Typo in docs: acheive -> achieve (Andrew Ash via phunt)

  ZOOKEEPER-1089. zkServer.sh status does not work due to invalid
  option of nc (Roman Shaposhnik via phunt)

  ZOOKEEPER-1343. getEpochToPropose should check if lastAcceptedEpoch is greater or equal than epoch (fpj via breed)

  ZOOKEEPER-1050. zooinspector shell scripts do not work
  (Will Johnson via phunt)

  ZOOKEEPER-1294. One of the zookeeper server is not accepting any requests (Kavita Sharma via henryr)
  
  ZOOKEEPER-1358. In StaticHostProviderTest.java, testNextDoesNotSleepForZero tests that hostProvider.next(0) 
  doesn't sleep by checking that the latency of this call is less than 10sec (Alex Shraer via camille)

  ZOOKEEPER-1351. invalid test verification in MultiTransactionTest (phunt via camille) 

  ZOOKEEPER-973. bind() could fail on Leader because it does not
  setReuseAddress on its ServerSocket (Harsh J via phunt)
 
  ZOOKEEPER-1367. Data inconsistencies and unexpired ephemeral nodes after cluster restart.
  (Benjamin Reed via mahadev)

  ZOOKEEPER-1353. C client test suite fails consistently. (Clint Byrum 
  via mahadev)

  ZOOKEEPER-1373. Hardcoded SASL login context name clashes with Hadoop security 
  configuration override. (Eugene Koontz and Thomas Weise via mahadev)

  ZOOKEEPER-1352. server.InvalidSnapshotTest is using connection timeouts 
  that are too short. (phunt via mahadev)

  ZOOKEEPER-1336. javadoc for multi is confusing, references functionality that doesn't seem
  to exist. (phunt via mahadev)

  ZOOKEEPER-1327. there are still remnants of hadoop urls. (Harsh J via mahadev)

  ZOOKEEPER-1340. multi problem - typical user operations are generating ERROR level 
  messages in the server (phunt via mahadev)

  ZOOKEEPER-1374. C client multi-threaded test suite fails to compile 
  on ARM architectures. (James Page via mahadev)

  ZOOKEEPER-1337. multi's "Transaction" class is missing tests. (camille
  and phunt via mahadev)

  ZOOKEEPER-1338. class cast exceptions may be thrown by multi ErrorResult 
  class (invalid equals) (phunt via mahadev)
  
  ZOOKEEPER-1386. avoid flaky URL redirection in "ant javadoc" : 
  replace "http://java.sun.com/javase/6/docs/api/" with 
  "http://download.oracle.com/javase/6/docs/api/" (Eugene Koontz via camille)
 
  ZOOKEEPER-1361. Leader.lead iterates over 'learners' set without proper synchronisation (henryr via camille)

  ZOOKEEPER-1277. servers stop serving when lower 32bits of zxid roll
  over (phunt)

  ZOOKEEPER-1412. java client watches inconsistently triggered on
  reconnect (phunt)

  ZOOKEEPER-1344. ZooKeeper client multi-update command is not
  considering the Chroot request (Rakesh R via phunt)

  ZOOKEEPER-1307. zkCli.sh is exiting when an Invalid ACL exception is
  thrown from setACL command through client (Kavita Sharma via phunt)
 
  ZOOKEEPER-1390. some expensive debug code not protected by a check
  for debug (breed via camille)

  ZOOKEEPER-1406. dpkg init scripts don't restart - missing
  check_priv_sep_dir (Chris Beauchamp via phunt)

  ZOOKEEPER-1403. zkCli.sh script quoting issue (James Page via phunt)

  ZOOKEEPER-1384. test-cppunit overrides LD_LIBRARY_PATH and fails if
  gcc is in non-standard location (Jay Shrauner via phunt)
  
  ZOOKEEPER-1419. Leader election never settles for a 5-node cluster (flavio via camille)

  ZOOKEEPER-1433. improve ZxidRolloverTest (test seems flakey) (phunt via henryr)

  ZOOKEEPER-1395. node-watcher double-free redux (Mike Lundy via henryr)
   
  ZOOKEEPER-1439. c sdk: core in log_env for lack of checking the output
  argument *pwp* of getpwuid_r (Yubing Yin via michim)

  ZOOKEEPER-1339. C client doesn't build with --enable-debug
  (Eric Liang via michim)

  ZOOKEEPER-1048. addauth command does not work in cli_mt/cli_st
  (allengao via michim)

  ZOOKEEPER-1318. In Python binding, get_children (and get and exists, and probably others)
  with expired session doesn't raise exception properly (henryr via michim)

  ZOOKEEPER-642. "exceeded deadline by N ms" floods logs (Marc Celani via michim)

  ZOOKEEPER-1431. zkpython async calls leak memory (Kapil Thangavelu and Andre Cruz via henryr)

  ZOOKEEPER-1163. Memory leak in zk_hashtable.c:do_insert_watcher_object()
  (Anupam Chanda via michim)

  ZOOKEEPER-1466. QuorumCnxManager.shutdown missing synchronization. (Patrick Hunt via mahadev)

  ZOOKEEPER-1490. If the configured log directory does not exist
    zookeeper will not start. Better to create the directory and start
    (suja s via phunt)

  ZOOKEEPER-1210. Can't build ZooKeeper RPM with RPM >= 4.6.0 (i.e. on
    RHEL 6 and Fedora >= 10) (Tadeusz Andrzej Kadłubowski via phunt)

  ZOOKEEPER-1236. Security uses proprietary Sun APIs
    (Adalberto Medeiros via phunt)

  ZOOKEEPER-1471. Jute generates invalid C++ code
    (Michi Mutsuzaki via phunt)
    
  ZOOKEEPER-1465. Cluster availability following new leader election 
    takes a long time with large datasets - is correlated to dataset size
    (fpj and Thawan Kooburat via camille)

  ZOOKEEPER-1427. Writing to local files is done non-atomically (phunt)

  ZOOKEEPER-1489. Data loss after truncate on transaction log (phunt)

  ZOOKEEPER-1521. LearnerHandler initLimit/syncLimit problems
    specifying follower socket timeout limits (phunt)

  ZOOKEEPER-1493. C Client: zookeeper_process doesn't invoke
    completion callback if zookeeper_close has been called
    (Michi Mutsuzaki via phunt and mahadev)

  ZOOKEEPER-1522. intermittent failures in Zab test due to NPE in
    recursiveDelete test function (phunt via flavio)

  ZOOKEEPER-1514. FastLeaderElection - leader ignores the round
  information when joining a quorum (flavio via henryr)

  ZOOKEEPER-1533 Correct the documentation of the args for the JavaExample doc.
  (Warren Turkal via michim)

  ZOOKEEPER-1536 c client : memory leak in winport.c (brooklin via michim)

  ZOOKEEPER-1481 allow the C cli to run exists with a watcher (phunt via michim)

  ZOOKEEPER-1328. Misplaced assertion for the test case 'FLELostMessageTest'
  and not identifying misfunctions. (Rakesh R via mahadev)

  ZOOKEEPER-1380. zkperl: _zk_release_watch doesn't remove items properly from
  the watch list. (Botond Hejj via mahadev)

  ZOOKEEPER-1538. Improve space handling in zkServer.sh and zkEnv.sh. (Andrew
  Ferguson via mahadev)

  ZOOKEEPER-1501. Nagios plugin always returns OK when it cannot connect to
  zookeeper. (Brian Sutherland via mahadev)

  ZOOKEEPER-1437. Client uses session before SASL authentication complete
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1494. C client: socket leak after receive timeout in
  zookeeper_interest() (Michi Mutsuzaki via mahadev)

  ZOOKEEPER-1483. Fix leader election recipe documentation (Michi Mutsuzaki
  via mahadev) 

  ZOOKEEPER-1496. Ephemeral node not getting cleared even after client has
  exited. (Rakesh R via mahadev)

  ZOOKEEPER-1550. ZooKeeperSaslClient does not finish anonymous login on
  OpenJDK (Eugene Koontz via mahadev)

  ZOOKEEPER-1585. make dist for src/c broken in trunk (Raul Gutierrez Segales
  via michim)

  ZOOKEEPER-1590. Patch to add zk.updateServerList(newServerList)
  broke the build (fpj via phunt)

  ZOOKEEPER-1474. Cannot build Zookeeper with IBM Java: use of Sun
  MXBean classes (Adalberto Medeiros via phunt)

  ZOOKEEPER-1591. Windows build is broken because inttypes.h doesn't exist
  (Marshall McMullen via michim)

  ZOOKEEPER-1596. Zab1_0Test should ensure that the file is closed
  (Enis Soztutar via phunt)

  ZOOKEEPER-1513. "Unreasonable length" exception while starting a
  server (Skye W-M via phunt)

  ZOOKEEPER-1581. change copyright in notice to 2012 (breed via phunt)

  ZOOKEEPER-1553. Findbugs configuration is missing some dependencies
  (Sean Busbey via phunt)

  ZOOKEEPER-1478. Small bug in QuorumTest.testFollowersStartAfterLeader( )
  (Alexander Shraer via fpj, breed, phunt)

  ZOOKEEPER-1387. Wrong epoch file created
  (Benjamin Busjaeger via breed, phunt)

  ZOOKEEPER-1578. org.apache.zookeeper.server.quorum.Zab1_0Test failed due to
  hard code with 33556 port (Li Ping via mahadev)

  ZOOKEEPER-1334. Zookeeper 3.4.x is not OSGi compliant - MANIFEST.MF
  is flawed (Claus Ibsen via phunt)

  ZOOKEEPER-1603. StaticHostProviderTest testUpdateClientMigrateOrNot
  hangs (Alexander Shraer via phunt)

  ZOOKEEPER-1597. Windows build failing (michim via phunt)

  ZOOKEEPER-1625. zkServer.sh is looking for clientPort in config file, but it
  may no longer be there with ZK-1411 (Alexander Shraer via michim)

  ZOOKEEPER-1495. ZK client hangs when using a function not available
  on the server. (Skye W-M via phunt)

  ZOOKEEPER-1620. NIOServerCnxnFactory (new code introduced in
  ZK-1504) opens selectors but never closes them
  (Thawan Kooburat via phunt)

  ZOOKEEPER-1628. Documented list of allowable characters in ZK doc
  not in line with code (Gabriel Reid via phunt)

  ZOOKEEPER-1613. The documentation still points to 2008 in the
  copyright notice (Edward Ribeiro via phunt)

  ZOOKEEPER-1562. Memory leaks in zoo_multi API
  (Deepak Jagtap via phunt)

  ZOOKEEPER-1645. ZooKeeper OSGi package imports not complete
  (Arnoud Glimmerveen via phunt)

  ZOOKEEPER-1641. Using slope=positive results in a jagged ganglia
  graph of packets rcvd/sent (Ben Hartshorne via phunt)

  ZOOKEEPER-1648. Fix WatcherTest in JDK7
  (Thawan Kooburat via phunt)

  ZOOKEEPER-1606. intermittent failures in ZkDatabaseCorruptionTest on
  jenkins (lixiaofeng via phunt)

  ZOOKEEPER-1647. OSGi package import/export changes not applied to
  bin-jar (Arnoud Glimmerveen via phunt)

  ZOOKEEPER-1672. zookeeper client does not accept "-members" option
  in reconfig command (Xiaoshuang Wang via phunt)

  ZOOKEEPER-1700. FLETest consistently failing - setLastSeenQuorumVerifier
  seems to be hanging (phunt via fpj)

  ZOOKEEPER-1697. large snapshots can cause continuous quorum failure
  (phunt via fpj)

  ZOOKEEPER-1706. Typo in Double Barriers example (Jingguo Yao via fpj)

  ZOOKEEPER-1324. Remove Duplicate NEWLEADER packets 
  from the Leader to the Follower. (Thawan, fpj via fpj)
  
  ZOOKEEPER-1642. Leader Loading Database Twice (fpj via camille)
  
  ZOOKEEPER-1663. scripts don't work when path contains spaces (Amichai Rothman via camille)

  ZOOKEEPER-1702. ZooKeeper client may write operation packets before
  receiving successful response to connection request, can cause TCP
  RST (Chris Nauroth via phunt)

  ZOOKEEPER-1629. testTransactionLogCorruption occasionally fails. (shralex via camille)

  ZOOKEEPER-1713. wrong time calculation in zkfuse.cc (german via fpj)
 
  ZOOKEEPER-1379. 'printwatches, redo, history and
  connect '. client commands always print usage. This
  is not necessary (edward via fpj)

  ZOOKEEPER-1670. zookeeper should set a default value
  for SERVER_JVMFLAGS and CLIENT_JVMFLAGS so that memory
  usage is controlled (Arpit Gupta via fpj)

  ZOOKEEPER-1448. Node+Quota creation in transaction log can crash leader startup (Botond Hejj via fpj)
  
  ZOOKEEPER-1664. Kerberos auth doesn't work with native platform GSS integration. (Boaz Kelmer via camille) 

  ZOOKEEPER-1754. Read-only server allows to create znode (Rakesh R via fpj)
 
  ZOOKEEPER-1751. ClientCnxn#run could miss the second ping or connection get
  dropped before a ping. (Jeffrey Zhong via mahadev)

  ZOOKEEPER-1657. Increased CPU usage by unnecessary SASL
   checks (Philip K. Warren via fpj)

  ZOOKEEPER-1753. ClientCnxn is not properly releasing the resources, 
                  which are used to ping RwServer (Rakesh R via fpj)

  ZOOKEEPER-1096. Leader communication should listen on 
  specified IP, not wildcard address (Jared Cantwell, 
  German Blanco via fpj)

  ZOOKEEPER-87. Follower does not shut itself down if its
   too far behind the leader. (German Blanco via fpj)

  ZOOKEEPER-1696. Fail to run zookeeper client on Weblogic application server.
  (Jeffrey Zhong via mahadev)

  ZOOKEEPER-1769. ZooInspector can't display node data/metadata/ACLs
  (Benjamin Jaton via phunt)

  ZOOKEEPER-1718. Support JLine 2 (Manikumar Reddy via phunt)

  ZOOKEEPER-1655. Make jline dependency optional in maven pom
  (Thomas Weise via phunt)

  ZOOKEEPER-1770. NullPointerException in SnapshotFormatter
  (Germán Blanco via phunt)

  ZOOKEEPER-1733. FLETest#testLE is flaky on windows boxes
  (Jeffrey Zhong via phunt)

  ZOOKEEPER-1773. incorrect reference to jline version/lib in docs
  (Manikumar Reddy via phunt)

  ZOOKEEPER-732. Improper translation of error into Python exception
  (Andrei Savu, Lei Zhang, fpj via fpj)

  ZOOKEEPER-1766. Consistent log severity level guards and statements
  (Jackie Chang via michim)

  ZOOKEEPER-1778. Use static final Logger objects (Rakesh R via michim)

  ZOOKEEPER-1551. Observers ignore txns that come after snapshot and UPTODATE 
  (thawan, fpj via thawan)

  ZOOKEEPER-1781. ZooKeeper Server fails if snapCount is set to 1
  (Takashi Ohnishi via phunt, breed)

  ZOOKEEPER-1774. QuorumPeerMainTest fails consistently with
  "complains about host" assertion failure (phunt)

  ZOOKEEPER-877. zkpython does not work with python3.1
  (Daniel Enman via phunt)
  
  ZOOKEEPER-1624. PrepRequestProcessor abort multi-operation incorrectly. (thawan via camille)

  ZOOKEEPER-1610. Some classes are using == or != to compare
  Long/String objects instead of .equals() (Edward Ribeiro via phunt)

  ZOOKEEPER-1795. unable to build c client on ubuntu
  (Raul Gutierrez Segales via phunt)

  ZOOKEEPER-1646. mt c client tests fail on Ubuntu Raring (phunt)

  ZOOKEEPER-1732. ZooKeeper server unable to join established
  ensemble (German Blanco via fpj)

  ZOOKEEPER-1667. Watch event isn't handled correctly when 
  a client reestablish to a server (jacky007, fpj via fpj)

  ZOOKEEPER-1799. SaslAuthFailDesignatedClientTest.testAuth fails
  frequently on SUSE (Jeffrey Zhong via phunt)

  ZOOKEEPER-1557. jenkins jdk7 test failure in
  testBadSaslAuthNotifiesWatch (Eugene Koontz via phunt)

  ZOOKEEPER-1744. clientPortAddress breaks "zkServer.sh status"
  (Nick Ohanian via phunt)

  ZOOKEEPER-1499. clientPort config changes not backwards-compatible
  (Alexander Shraer via phunt, breed)

  ZOOKEEPER-1798. Fix race condition in testNormalObserverRun
  (thawan, fpj via thawan)

  ZOOKEEPER-1783. Distinguish initial configuration from first established
  configuration (shralex via breed)

  ZOOKEEPER-1812. ZooInspector reconnection always fails if first
  connection fails (Benjamin Jaton via phunt)

  ZOOKEEPER-1815. Tolerate incorrectly set system hostname in tests
  (some one via michim)

  ZOOKEEPER-1821. very ugly warning when compiling load_gen.c
  (german blanco via fpj)

  ZOOKEEPER-1632. fix memory leaks in cli_st (fpj via michim)

  ZOOKEEPER-1459. Standalone ZooKeeperServer is not closing
  the transaction log files on shutdown (Rakesh R via fpj)

  ZOOKEEPER-1019. zkfuse doesn't list dependency on boost in README
  (Raul Gutierrez Segales via michim)

  ZOOKEEPER-1834. Catch IOException in FileTxnLog (fpj via michim)
  
  ZOOKEEPER-1382. Zookeeper server holds onto dead/expired session ids in the watch data structures
  (Germán Blanco and Michael Morello via camille)

  ZOOKEEPER-1839. Deadlock in NettyServerCnxn (Rakesh R via michim)

  ZOOKEEPER-1622. session ids will be negative in the year 2022
  (Eric Newton via phunt)

  ZOOKEEPER-1756. zookeeper_interest() in C client can return a timeval of 0
  (Eric Lindvall via michim)

  ZOOKEEPER-1388. Client side 'PathValidation' is missing for the
  multi-transaction api. (Rakesh R via marshallm, phunt)

  ZOOKEEPER-1849. Need to properly tear down tests in various cases
  (Germán Blanco via fpj)

  ZOOKEEPER-1179. NettyServerCnxn does not properly close socket on
  4 letter word requests (Rakesh R, Germán Blanco via fpj)

  ZOOKEEPER-1852. ServerCnxnFactory instance is not properly 
  cleanedup (Rakesh R via fpj)

  ZOOKEEPER-1414. QuorumPeerMainTest.testQuorum, testBadPackets are failing
  intermittently (Rakesh R via michim)

  ZOOKEEPER-1057. zookeeper c-client, connection to offline server fails to
  successfully fallback to second zk host (Germán Blanco via michim)

  ZOOKEEPER-1857. PrepRequestProcessotTest doesn't shutdown ZooKeeper server
  (Germán Blanco via michim)

  ZOOKEEPER-1860. Async versions of reconfig don't actually throw
  KeeperException nor InterruptedException (Raul Gutierrez Segales via phunt)

  ZOOKEEPER-1837. Fix JMXEnv checks (potential race conditions)
  (Germán Blanco via fpj)

  ZOOKEEPER-1858. JMX checks - potential race conditions while stopping
  and starting server (Rakesh R via fpj)

  ZOOKEEPER-1867. Bug in ZkDatabaseCorruptionTest (fpj)

  ZOOKEEPER-1573. Unable to load database due to missing parent node
  (Vinayakumar B via phunt, fpj)

  ZOOKEEPER-1811. The ZooKeeperSaslClient service name principal is
  hardcoded to "zookeeper" (Harsh J via phunt)

  ZOOKEEPER-1874. Add proper teardown/cleanups in ReconfigTest to shutdown
  quorumpeer (Rakesh R and Germán Blanco via michim)

  ZOOKEEPER-1873. Unnecessarily InstanceNotFoundException is coming when
  unregister failed jmxbeans (Rakesh R via michim)

  ZOOKEEPER-1844. TruncateTest fails on windows (Rakesh R via fpj)
  
  ZOOKEEPER-1861. ConcurrentHashMap isn't used properly in QuorumCnxManager 
  (Ted Yu via camille)

  ZOOKEEPER-1755. Concurrent operations of four letter 'dump' ephemeral 
  command and killSession causing NPE (Rakesh R via camille)

  ZOOKEEPER-1779. ReconfigTest littering the source root with test files
  (Abhiraj Butala via michim)

  ZOOKEEPER-1888. ZkCli.cmd commands fail with "'java' is not recognized as an
  internal or external command" (Ivan Mitic via michim)

  ZOOKEEPER-1662. Fix to two small bugs in ReconfigTest.testPortChange()
  (Alexander Shraer via michim)

  ZOOKEEPER-1883. C client unit test failures (Raul Gutierrez Segales via
  michim)

  ZOOKEEPER-1878. Inconsistent behavior in autocreation of dataDir and
  dataLogDir (Rakesh R via michim)

  ZOOKEEPER-1862. ServerCnxnTest.testServerCnxnExpiry is intermittently failing
  (Rakesh R via michim)

  ZOOKEEPER-1901. [JDK8] Sort children for comparison in AsyncOps tests
  (Andrew Purtell via michim)
  
  ZOOKEEPER-1894. ObserverTest.testObserver fails consistently. (michim via camille)

  ZOOKEEPER-1263. fix handling of min/max session timeout value initialization
  (Rakesh R via michim)

  ZOOKEEPER-1904. WatcherTest#testWatchAutoResetWithPending is failing
  (Rakesh R via michim)

  ZOOKEEPER-1725. Zookeeper Dynamic Conf writes out hostnames when IPs are
  supplied (Alexander Shraer via michim)

  ZOOKEEPER-1906. zkpython: invalid data in GetData for empty node
  (Nikita Vetoshkin via michim)

  ZOOKEEPER-1897. ZK Shell/Cli not processing commands (stack via michim)

  ZOOKEEPER-1357. Zab1_0Test uses hard-wired port numbers. Specifically, it uses
  the same port for leader in two different tests. The second test periodically
  fails complaining that the port is still in use. (Alexander Shraer via michim)

  ZOOKEEPER-1840. Server tries to connect to itself during dynamic reconfig
  (Alexander Shraer via michim)
 
  ZOOKEEPER-1909. removeWatches doesn't return NOWATCHER when there is
  no watch set (Raul Gutierrez Segales via rakeshr)

  ZOOKEEPER-1913. Invalid manifest files due to bogus revision property value
  (Raul Gutierrez Segales via michim)

  ZOOKEEPER-1911. REST contrib module does not include all required files when
  packaged (Sean Mackrory via michim)

  ZOOKEEPER-1819. DeserializationPerfTest calls method with wrong arguments
  (Daniel Knightly via michim)

  ZOOKEEPER-1673. Zookeeper don't support cidr in expression in ACL with ip
  scheme (Craig Condit via michim)

  ZOOKEEPER-1843. Oddity in ByteBufferInputStream skip (Bill Havanki via michim)
  
  ZOOKEEPER-1910. RemoveWatches wrongly removes the watcher if multiple watches 
  exists on a path (Rakesh R via camille)
  
  ZOOKEEPER-1695. Inconsistent error code and type for new errors introduced
  by dynamic reconfiguration (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-1923. A typo in zookeeperStarted document (Chengwei Yang via michim)

  ZOOKEEPER-1926. Unit tests should only use build/test/data for data (Enis
  Soztutar via michim)

  ZOOKEEPER-1891. StaticHostProviderTest.testUpdateLoadBalancing times out
  (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-1836. addrvec_next() fails to set next parameter if
  addrvec_hasnext() returns false (Dutch T. Meyer via michim)

  ZOOKEEPER-1062. Net-ZooKeeper: Net::ZooKeeper consumes 100% cpu on wait
  (Botond Hejj via michim)

  ZOOKEEPER-1864. quorumVerifier is null when creating a QuorumPeerConfig
  from parsing a Properties object (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-1797. PurgeTxnLog may delete data logs during roll (Rakesh R via
  michim)

  ZOOKEEPER-1791. ZooKeeper package includes unnecessary jars that are part of
  the package. (mahadev via michim)

  ZOOKEEPER-1214. QuorumPeer should unregister only its previsously registered
  MBeans instead of use MBeanRegistry.unregisterAll() method.
  (César Álvarez Núñez via michim)

  ZOOKEEPER-1699. Leader should timeout and give up leadership when losing
  quorum of last proposed configuration (Alexander Shraer via michim)

  ZOOKEEPER-1870. flakey test in StandaloneDisabledTest.startSingleServerTest 
  (Helen Hastings via fpj)

  ZOOKEEPER-1945. deb - zkCli.sh, zkServer.sh and zkEnv.sh regression caused
  by ZOOKEEPER-1663 (Mark Flickinger via fpj)

  ZOOKEEPER-1939. ReconfigRecoveryTest.testNextConfigUnreachable is
  failing (Rakesh R via phunt)

  ZOOKEEPER-1835. dynamic configuration file renaming fails on Windows
  (Bruno Freudensprung via rakeshr)

  ZOOKEEPER-1810. Add version to FLE notifications for trunk Germán Blanco via
  michim)

  ZOOKEEPER-1222. getACL should only call DataTree.copyStat when passed in
  stat is not null (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-1964. Fix Flaky Test in ReconfigTest.java (Hongchao Deng via fpj)
  
  ZOOKEEPER-1863. Race condition in commit processor leading to out of order 
  request completion, xid mismatch on client. (fpj and Dutch T Meyer via camille)

  ZOOKEEPER-1966. VS and line breaks (Orion Hodson via fpj)

  ZOOKEEPER-1683. ZooKeeper client NPE when updating server list on disconnected
  client (shralex via michim)

  ZOOKEEPER-1969. Fix Port Already In Use for JettyAdminServerTest
  (Hongchao Deng via phunt)

  ZOOKEEPER-1851. Follower and Observer Request Processors Do Not Forward
  create2 Requests (Chris Chen via rakeshr)

  ZOOKEEPER-1807. Observers spam each other creating connections to the
  election addr (Alex Shraer via fpj)

  ZOOKEEPER-1972. Fix invalid volatile long/int increment (++)
  (Hongchao Deng via phunt)

  ZOOKEEPER-1973. Jetty Server changes broke ibm6 support
  (Bill Havanki via phunt)

  ZOOKEEPER-1975. Turn off "internationalization warnings" in findbugs
  exclude file (phunt)

  ZOOKEEPER-1979. Fix Performance Warnings found by Findbugs 2.0.3
  (Hongchao Deng via phunt)

  ZOOKEEPER-1981. Fix Dodgy Code Warnings identified by findbugs 2.0.3
  (Hongchao Deng via phunt)

  ZOOKEEPER-1984. testLeaderTimesoutOnNewQuorum is a flakey test
  (Alex Shraer via phunt)

  ZOOKEEPER-1789. 3.4.x observer causes NPE on 3.5.0 (trunk)
  participants (Alex Shraer via phunt)

  ZOOKEEPER-1982. Refactor (touch|add)Session in
  SessionTrackerImpl.java (Hongchao Deng via phunt)

  ZOOKEEPER-1937. init script needs fixing for ZOOKEEPER-1719
  (Marshall McMullen via phunt)

  ZOOKEEPER-1877. Malformed ACL Id can crash server with skipACL=yes
  (Chris Chen via phunt)

  ZOOKEEPER-1974. winvs2008 jenkins job failing with "unresolved
  external symbol" (flavio via phunt)

  ZOOKEEPER-1933. Windows release build of zk client cannot connect to
  zk server (Orion Hodson via fpj, phunt)

  ZOOKEEPER-1988. new test patch to verify dynamic reconfig backward
  compatibility (Alexander Shraer via rakeshr)

  ZOOKEEPER-2000. Fix ReconfigTest.testPortChange (Alexander Shraer via michim)

IMPROVEMENTS:

  ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,
  unused variables, missing generics (Thomas Koch via phunt)

  ZOOKEEPER-96. The jute parser should get generated from the jj files
  instead of checking in the generated sources (Thomas Koch via phunt)

  ZOOKEEPER-1175. DataNode references parent node for no reason
  (Thomas Koch via phunt)

  ZOOKEEPER-899. Update Netty version in trunk to 3.2.2
  (Thomas Koch via phunt)

  ZOOKEEPER-1182. Make findbugs usable in Eclipse (Thomas Koch via phunt)

  ZOOKEEPER-1184. jute generated files are not being cleaned up via "ant clean"
  (Thomas Koch via phunt)

  ZOOKEEPER-1176. Remove dead code and basic cleanup in DataTree
  (Thomas Koch via phunt)

  ZOOKEEPER-556. Startup messages should account for common error of
  missing leading slash in config files (Thomas Koch via phunt)
   
  ZOOKEEPER-1155. Add windows automated builds (CI) for zookeeper c client bindings. (Dheeraj Agrawal via camille) 

  ZOOKEEPER-1226. extract version check in separate method in PrepRequestProcessor (Thomas Koch via camille)

  ZOOKEEPER-1193. Remove upgrade code (Thomas Koch via phunt)

  ZOOKEEPER-1221. Provide accessors for Request.{hdr|txn} (Thomas Koch via phunt)

  ZOOKEEPER-1216. Fix more eclipse compiler warnings, also in Tests
  (Thomas Koch via phunt)

  ZOOKEEPER-1254. test correct watch handling with multi ops
  (Thomas Koch via phunt)

  ZOOKEEPER-1252. remove unused method o.a.z.test.AxyncTest.restart()
  (Thomas Koch via phunt)

  ZOOKEEPER-1200. Remove obsolete DataTreeBuilder
  (Thomas Koch via phunt)

  ZOOKEEPER-1247. dead code in PrepRequestProcessor.pRequest multi case
  (Thomas Koch via phunt)

  ZOOKEEPER-1265. Normalize switch cases lists on request types
  (Thomas Koch via phunt)

  ZOOKEEPER-1267. closeSession flag in finalRequestProcessor is superfluous
  (Thomas Koch via phunt)

  ZOOKEEPER-1273. Copy'n'pasted unit test (Thomas Koch via phunt)

  ZOOKEEPER-1232. remove unused o.a.z.server.util.Profiler
  (Thomas Koch via phunt)

  ZOOKEEPER-1253. return value of DataTree.createNode is never used
  (Thomas Koch via phunt)

  ZOOKEEPER-756. some cleanup and improvements for zooinspector
  (Colin Goodheart-Smithe & Thomas Koch via phunt)

  ZOOKEEPER-1292. FLETest is flaky (fpj via breed)

  ZOOKEEPER-1326. The CLI commands "delete" and "rmr" are confusing.
  Can we have "rm" + "rmr" instead? (Harsh J via phunt)

  ZOOKEEPER-1342. quorum Listener & LearnerCnxAcceptor are missing
  thread names (Rakesh R via phunt)

  ZOOKEEPER-1229. C client hashtable_remove redundantly calls hash function
  (Harsh J via phunt)

  ZOOKEEPER-1345. Add a .gitignore file with general exclusions and
  Eclipse project files excluded (Harsh J via phunt)

  ZOOKEEPER-1293. Remove unused readyToStart from Leader.java
  (Alex Shraer via phunt)

  ZOOKEEPER-1322. Cleanup/fix logging in Quorum code. 
  (phunt via mahadev)

  ZOOKEEPER-1321. Add number of client connections metric in JMX and
  srvr. (Neha Narkhede via camille)

  ZOOKEEPER-1389. it would be nice if start-foreground used exec $JAVA
  in order to get rid of the intermediate shell process
  (Roman Shaposhnik via phunt)

  ZOOKEEPER-1161. Provide an option for disabling auto-creation of the
  data directory (phunt via henry)
  
  ZOOKEEPER-1397. Remove BookKeeper documentation links. (flavio via camille)
  
  ZOOKEEPER-1377. add support for dumping a snapshot file content (similar to LogFormatter). (phunt via camille)

  ZOOKEEPER-271. Better command line parsing in ZookeeperMain.
  (Hartmut Lang via phunt)

  ZOOKEEPER-1435. cap space usage of default log4j rolling policy (phunt via henryr)

  ZOOKEEPER-1432. Add javadoc and debug logging for checkACL() method in 
  PrepRequestProcessor (Eugene Koontz via michim)

  ZOOKEEPER-1411. Consolidate membership management, distinguish between static and dynamic configuration parameters (Alex Shraer via breed)

  ZOOKEEPER-1451. C API improperly logs getaddrinfo failures on Linux when using glibc (Stephen Tyree via michim)

  ZOOKEEPER-1440. Spurious log error messages when QuorumCnxManager is shutting
  down (Jordan Zimmerman via michim)

  ZOOKEEPER-1454. Document how to run autoreconf if cppunit is
    installed in a non-standard directory (Michi Mutsuzaki via phunt)

  ZOOKEEPER-1503. remove redundant JAAS configuration code in SaslAuthTest and
    SaslAuthFailTest (Eugene Koontz via phunt)

  ZOOKEEPER-1510. Should not log SASL errors for non-secure usage
    (Todd Lipcon via phunt)

  ZOOKEEPER-1497. Allow server-side SASL login with JAAS configuration
  to be programmatically set (rather than only by reading JAAS
  configuration file) (Matteo Bertozzi via phunt)

  ZOOKEEPER-1238. Linger time should be -1 for Netty sockets. (Skye
  W-M via henryr)

  ZOOKEEPER-1505. Multi-thread CommitProcessor (Jay Shrauner via phunt)

  ZOOKEEPER-1564. Allow JUnit test build with IBM Java
    (Paulo Ricardo Paz Vital via phunt)

  ZOOKEEPER-1598. Ability to support more digits in the version string
  (Raja Aluri via phunt)

  ZOOKEEPER-721. Minor cleanup related to the log4j version change
  from 1.2.15 -> 1.2.16 (Sean Busbey via phunt)

  ZOOKEEPER-1583. Document maxClientCnxns in conf/zoo_sample.cfg
  (Christopher Tubbs via phunt)

  ZOOKEEPER-1584. Adding mvn-install target for deploying the
  zookeeper artifacts to .m2 repository (Ashish Singh via phunt)

  ZOOKEEPER-1602. a change to QuorumPeerConfig's API broke
  compatibility with HBase (Alexander Shraer via phunt)

  ZOOKEEPER-1335. Add support for --config to zkEnv.sh to specify a config
  directory different than what is expected (Arpit Gupta via mahadev)

  ZOOKEEPER-1504. Multi-thread NIOServerCnxn (Jay Shrauner via phunt)

  ZOOKEEPER-1297. Add stat information to create() call
  (Lenni Kuff via phunt)

  ZOOKEEPER-1535. ZK Shell/Cli re-executes last command on exit (Edward Ribeiro via camille)

  ZOOKEEPER-1619. Allow spaces in URL (Edward Ribeiro via phunt)

  ZOOKEEPER-1615. minor typos in ZooKeeper Programmer's Guide web page
  (Evan Zacks via phunt)

  ZOOKEEPER-1601. document changes for multi-threaded CommitProcessor
  and NIOServerCnxn (Thawan Kooburat via phunt)

  ZOOKEEPER-1643. Windows: fetch_and_add not 64bit-compatible, may not be
  correct (Erik Anderson via michim)
  
  ZOOKEEPER-1714 perl client segfaults if ZOO_READ_ACL_UNSAFE constant is used
  (Botond Hejj via camille)
  
  ZOOKEEPER-1719. zkCli.sh, zkServer.sh and zkEnv.sh regression caused by ZOOKEEPER-1663
  (Marshall McMullen via camille)

  ZOOKEEPER-1413. Use on-disk transaction log for learner sync up (thawan)

  ZOOKEEPER-1400. Allow logging via callback instead of raw FILE pointer (michi via fpj)

  ZOOKEEPER-1679. c client: use -Wdeclaration-after-statement (michi via fpj)

  ZOOKEEPER-1750 Race condition producing NPE in NIOServerCnxn.toString
  (Rakesh R via michim)
  
  ZOOKEEPER-1759. Adding ability to allow READ operations for authenticated users, 
  versus keeping ACLs wide open for READ. (Yuliya Feldman via camille)

  ZOOKEEPER-1552. Enable sync request processor in Observer (thawan, fpj)

  ZOOKEEPER-1758. Add documentation for zookeeper.observer.syncEnabled flag
  (thawan, fpj via thawan)

  ZOOKEEPER-1771. ZooInspector authentication (Benjamin Jaton via phunt)

  ZOOKEEPER-1509. Please update documentation to reflect updated
  FreeBSD support (George Neville-Neil via phunt)

  ZOOKEEPER-1627. Add org.apache.zookeeper.common to exported packages
  in OSGi MANIFEST (Arnoud Glimmerveen via phunt)

  ZOOKEEPER-1715. Upgrade netty version (Sean Bridges via phunt)
  
  ZOOKEEPER-1666. Avoid Reverse DNS lookup if the hostname in 
  connection string is literal IP address. (George Cao via camille)

  ZOOKEEPER-1786. ZooKeeper data model documentation is incorrect
  (Niraj Tolia via fpj)

  ZOOKEEPER-1430. add maven deploy support to the build
  (Giridharan Kesavan via phunt)

  ZOOKEEPER-1440. Spurious log error messages when QuorumCnxManager is shutting
  down (Jordan Zimmerman via michim)

  ZOOKEEPER-1638. Redundant zk.getZKDatabase().clear(); (neil bhakta via michim)

  ZOOKEEPER-1796. Move common code from {Follower, Observer}ZooKeeperServer into
  LearnerZooKeeperServer (Raul Gutierrez Segales via michim)

  ZOOKEEPER-602. log all exceptions not caught by ZK threads (Rakesh R via
  michim)

  ZOOKEEPER-297. centralize version numbering in the source/build (Diego de
  Oliveira via michim)

  ZOOKEEPER-1408. CLI: sort output of ls command (Hartmut Lang via michim)

  ZOOKEEPER-1219. LeaderElectionSupport recipe is unnecessarily dispatching the
  READY_START event even if the ELECTED node stopped/expired simultaneously.
  (Rakesh R via michim)

  ZOOKEEPER-1728. Better error message when reconfig invoked in standalone mode
  (Alexander Shraer via michim)

  ZOOKEEPER-1701. When new and old config have the same version, no need to
  write new config to disk or create new connections (Alexander Shraer via
  michim)

  ZOOKEEPER-1730. Make ZooKeeper easier to test - support simulating a session
  expiration (Jordan Zimmerman via michim)

  ZOOKEEPER-1831. Document remove watches details to the guide (Rakesh R via
  michim)

  ZOOKEEPER-1575. adding .gitattributes to prevent CRLF and LF mismatches for
  source and text files (Raja Aluri via michim)

  ZOOKEEPER-657. Cut down the running time of ZKDatabase corruption
  (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-716. dump server memory detail to the log during startup
  (Michi Mutsuzaki via rakeshr)

  ZOOKEEPER-1930. A typo in zookeeper recipes.html (Chengwei Yang via michim)

  ZOOKEEPER-1659. Add JMX support for dynamic reconfiguration (Rakesh R via
  michim)
  
  ZOOKEEPER-1928. add configurable throttling to the number of snapshots
  concurrently sent by a leader (Edward Carter via fpj)

  ZOOKEEPER-1746. AsyncCallback.*Callback don't have any Javadoc
  (Hongchao Deng via phunt)

  ZOOKEEPER-1938. bump version in the C library as we prepare for
  3.5.0 release (Raul Gutierrez Segales via phunt)
  
  ZOOKEEPER-1576. Zookeeper cluster - failed to connect to cluster if one of the 
  provided IPs causes java.net.UnknownHostException (Edward Ribeiro via camille)

  ZOOKEEPER-1918. Add 64 bit Windows as a supported development
  platform (Michi Mutsuzaki via phunt)

  ZOOKEEPER-1946. Server logging should reflect dynamically
  reconfigured address (Niko Vuokko via phunt and Alexander Shraer)

  ZOOKEEPER-1953. Add solution and project files to enable build with current
  Visual Studio editions (VS 2012/2013)- 32-bit and 64-bit.
  (Orion Hodson via fpj)

  ZOOKEEPER-1968. Make Jetty dependencies optional in ivy.xml
  (Bill Havanki via phunt)

  ZOOKEEPER-927. there are currently 24 RAT warnings in the build --
  address directly or via exclusions (Michi Mutsuzaki via phunt)

  ZOOKEEPER-1986. refactor log trace on touchSession
  (Hongchao Deng via phunt)

  ZOOKEEPER-2017. New tests for reconfig failure cases (Alexander Shraer and
  Hongchao Deng via michim)

  ZOOKEEPER-2039. Jute compareBytes incorrect comparison index
  (Ian Dimayuga via fpj) 

headers

Release 3.4.0 - 

Non-backward compatible changes:

BUGFIXES: 

Backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-735. cppunit test testipv6 assumes that the machine is ipv6
  enabled. (mahadev)

  ZOOKEEPER-720. Use zookeeper-{version}-sources.jar instead of
  zookeeper-{version}-src.jar to publish sources in the Maven repository
  (paolo via phunt)

  ZOOKEEPER-722. zkServer.sh uses sh's builtin echo on BSD, behaves
  incorrectly. (Ivan Kelly via phunt)

  ZOOKEEPER-741. root level create on REST proxy fails (phunt)

  ZOOKEEPER-631. zkpython's C code could do with a style clean-up
  (henry robinson via phunt)
  
  ZOOKEEPER-746. learner outputs session id to log in dec (phunt via
  henryr)

  ZOOKEEPER-738. zookeeper.jute.h fails to compile with -pedantic
  (Jozef Hatala via phunt)

  ZOOKEEPER-734. QuorumPeerTestBase.java and ZooKeeperServerMainTest.java
  do not handle windows path correctly (Vishal K via phunt)

  ZOOKEEPER-754. numerous misspellings "succesfully"
  (Andrei Savu via phunt)

  ZOOKEEPER-749. OSGi metadata not included in binary only jar (phunt
  via henryr)

  ZOOKEEPER-750. move maven artifacts into "dist-maven" subdir of the
  release (package target) (phunt via henryr)

  ZOOKEEPER-758. zkpython segfaults on invalid acl with missing key
  (Kapil Thangavelu via henryr)

  ZOOKEEPER-737. some 4 letter words may fail with netcat (nc). (mahadev)

  ZOOKEEPER-764. Observer elected leader due to inconsistent voting view 
  (henry via mahadev)

  ZOOKEEPER-763. Deadlock on close w/ zkpython / c client
  (henry via phunt)

  ZOOKEEPER-774. Recipes tests are slightly outdated: they do not compile
  against JUnit 4.8 (Sergey Doroshenko via phunt)

  ZOOKEEPER-772. zkpython segfaults when watcher from async get children is
  invoked. (henry via phunt)

  ZOOKEEPER-636. configure.ac has instructions which override the contents of
  CFLAGS and CXXFLAGS. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-796. zkServer.sh should support an external PIDFILE variable
  (Alex Newman via phunt)

  ZOOKEEPER-719. Add throttling to BookKeeper client (fpj via breed)

  ZOOKEEPER-814. monitoring scripts are missing apache license headers
  (andrei savu via mahadev)

  ZOOKEEPER-783. committedLog in ZKDatabase is not properly synchronized
  (henry via mahadev) 

  ZOOKEEPER-790.  Last processed zxid set prematurely while establishing 
  leadership (flavio via mahadev)

  ZOOKEEPER-795. eventThread isn't shutdown after a connection 
  "session expired" event coming (Sergey Doroshenko and Ben via mahadev)

  ZOOKEEPER-792. zkpython memory leak (Lei Zhang via henryr)

  ZOOKEEPER-854. BookKeeper does not compile due to changes in the ZooKeeper 
  code (Flavio via mahadev)

  ZOOKEEPER-861. Missing the test SSL certificate used for running junit tests.
  (erwin tam via mahadev)

  ZOOKEEPER-867. ClientTest is failing on hudson - fd cleanup (phunt)

  ZOOKEEPER-785. Zookeeper 3.3.1 shouldn't infinite loop if someone creates a
  server.0 line (phunt and Andrei Savu via breed)

  ZOOKEEPER-785. Zookeeper 3.3.1 shouldn't infinite loop if someone creates a
  server.0 line (part 2) (phunt)

  ZOOKEEPER-870. Zookeeper trunk build broken. (mahadev via phunt)

  ZOOKEEPER-831. BookKeeper: Throttling improved for reads (breed via fpj)

  ZOOKEEPER-846. zookeeper client doesn't shut down cleanly on the close call
  (phunt)
  
  ZOOKEEPER-804. c unit tests failing due to "assertion cptr failed" (michi
  mutsuzaki via mahadev)

  ZOOKEEPER-844. handle auth failure in java client
  (Camille Fournier via phunt)

  ZOOKEEPER-822. Leader election taking a long time to complete
  (Vishal K via phunt)

  ZOOKEEPER-866. Hedwig Server stays in "disconnected" state when
  connection to ZK dies but gets reconnected (erwin tam via breed)

  ZOOKEEPER-881. ZooKeeperServer.loadData loads database twice
  (jared cantwell via breed)

  ZOOKEEPER-855. clientPortBindAddress should be clientPortAddress
  (Jared Cantwell via fpj)

  ZOOKEEPER-888. c-client / zkpython: Double free corruption on
  node watcher (Austin Shoemaker via henryr)

  ZOOKEEPER-893. ZooKeeper high cpu usage when invalid requests
  (Thijs Terlouw via phunt)

  ZOOKEEPER-804. c unit tests failing due to "assertion cptr failed"
  (second try - Jared Cantwell via phunt)

  ZOOKEEPER-820. update c unit tests to ensure "zombie" java server
  processes don't cause failure (Michi Mutsuzaki via phunt)

  ZOOKEEPER-794. Callbacks are not invoked when the client is closed
  (Alexis Midon via phunt)

  ZOOKEEPER-800. zoo_add_auth returns ZOK if zookeeper handle is in
  ZOO_CLOSED_STATE (michi mutsuzaki via mahadev konar)

  ZOOKEEPER-904. super digest is not actually acting as a full superuser
  (Camille Fournier via mahadev)

  ZOOKEEPER-897. C Client seg faults during close (jared cantwell via mahadev)

  ZOOKEEPER-898. C Client might not cleanup correctly during close 
  (jared cantwell via mahadev)

  ZOOKEEPER-907. Spurious "KeeperErrorCode = Session moved" messages (vishal k via breed)

  ZOOKEEPER-884. Remove LedgerSequence references from BookKeeper documentation and comments in tests (fpj via breed)

  ZOOKEEPER-916. Problem receiving messages from subscribed channels in c++ client (ivan via breed)

  ZOOKEEPER-930. Hedwig c++ client uses a non thread safe logging library (ivan via breed)

  ZOOKEEPER-900. FLE implementation should be improved to use non-blocking sockets (vishal via fpj)

  ZOOKEEPER-937. test -e not available on solaris /bin/sh (Erik Hetzner via mahadev)

  ZOOKEEPER-905. enhance zkServer.sh for easier zookeeper automation-izing (Nicholas Harteau via mahadev)

  ZOOKEEPER-913. Version parser fails to parse "3.3.2-dev" from build.xml (Anthony Urso and phunt via breed)

  ZOOKEEPER-957. zkCleanup.sh doesn't do anything (Ted Dunning via mahadev)

  ZOOKEEPER-958. Flag to turn off autoconsume in hedwig c++ client (Ivan Kelly
  via mahadev)

  ZOOKEEPER-882. Startup loads last transaction from snapshot (j:ared via fpj)

  ZOOKEEPER-962. leader/follower coherence issue when follower is receiving a DIFF
  (camille fournier via breed)

  ZOOKEEPER-902. Fix findbug issue in trunk "Malicious code vulnerability"
  (flavio and phunt via phunt)

  ZOOKEEPER-985. Test BookieRecoveryTest fails on trunk. (fpj via breed)

  ZOOKEEPER-983. running zkServer.sh start remotely using ssh hangs (phunt)

  ZOOKEEPER-976. ZooKeeper startup script doesn't use JAVA_HOME (phunt)

  ZOOKEEPER-994 "eclipse" target in the build script doesnot include
  libraray required for test classes in the classpath (MIS via phunt) 

  ZOOKEEPER-1013 zkServer.sh usage message should mention all startup options
  (eugene koontz via mahadev)

  ZOOKEEPER-1007. iarchive leak in C client (jeremy stribling via mahadev)

  ZOOKEEPER-993. Code improvements (MIS via fpj)

  ZOOKEEPER-1012. support distinct JVMFLAGS for zookeeper server in zkServer.sh 
  and zookeeper client in zkCli.sh (Eugene Koontz via breed)

  ZOOKEEPER-880. QuorumCnxManager$SendWorker grows without bounds (vishal via breed)

  ZOOKEEPER-1018. The connection permutation in get_addrs uses a weak and inefficient 
  shuffle (Stephen Tyree via breed)
 
  ZOOKEEPER-1028. In python bindings, zookeeper.set2() should return a stat dict but 
  instead returns None. (Chris Medaglia and Ivan Kelly via mahadev)

  ZOOKEEPER-975. new peer goes in LEADING state even if ensemble is online. (vishal via fpj)

  ZOOKEEPER-1049. Session expire/close flooding renders heartbeats to delay significantly. 
  (chang song via mahadev)
  
  ZOOKEEPER-1033. c client should install includes into INCDIR/zookeeper, not INCDIR/c-client-src
  (Nicholas Harteau via mahadev)

  ZOOKEEPER-1061. Zookeeper stop fails if start called twice. (Ted Dunning via mahadev)

  ZOOKEEPER-1059. stat command isses on non-existing node causes NPE. (Bhallamudi Kamesh via mahadev)
  
  ZOOKEEPER-1058. fix typo in opToString for getData. (camille)
  
  ZOOKEEPER-1046. Creating a new sequential node results in a ZNODEEXISTS error. (Vishal K via camille) 
  
  ZOOKEEPER-1069. Calling shutdown() on a QuorumPeer too quickly can lead to a corrupt log. (Vishal K via camille) 

  ZOOKEEPER-1083. Javadoc for WatchedEvent not being generated. (Ivan Kelly via michim)

  ZOOKEEPER-1086. zookeeper test jar has non mavenised dependency. (Ivan Kelly via michim)

  ZOOKEEPER-335. zookeeper servers should commit the new leader txn to their logs. (breed)

  ZOOKEEPER-1081. modify leader/follower code to correctly deal with new leader (breed)

  ZOOKEEPER-1082. modify leader election to correctly take into account current epoch (fpj via breed)

  ZOOKEEPER-1060. QuorumPeer takes a long time to shutdown (Vishal via fpj)

  ZOOKEEPER-1087. ForceSync VM arguement not working when set to "no" (Nate Putnam via breed)

  ZOOKEEPER-1068. Documentation and default config suggest incorrect
  location for Zookeeper state (Roman Shaposhnik via phunt)

  ZOOKEEPER-1103. In QuorumTest, use the same "for ( .. try { break }
  catch { } )" pattern in testFollowersStartAfterLeaders as in
  testSessionMove. (Eugene Koontz via phunt)
  ZOOKEEPER-1046. Creating a new sequential node results in a ZNODEEXISTS error. (breed via camille)

  ZOOKEEPER-1097. Quota is not correctly rehydrated on snapshot reload (camille via henryr)
  
  ZOOKEEPER-1046. Small fix: Creating a new sequential node results in a ZNODEEXISTS error. (Vishal K via camille)

  ZOOKEEPER-782. Incorrect C API documentation for Watches. (mahadev via breed)

  ZOOKEEPER-1063. Dubious synchronization in Zookeeper and ClientCnxnSocketNIO classes (Yanick Dufresne via breed)

  ZOOKEEPER-1124. Multiop submitted to non-leader always fails due to timeout (Marshall McMullen via breed)

  ZOOKEEPER-1111. JMXEnv uses System.err instead of logging
  (Ivan Kelly via phunt)
  
  ZOOKEEPER-1027. chroot not transparent in zoo_create() (Thijs Terlouw via
  mahadev)
  
  ZOOKEEPER-1109. Zookeeper service is down when SyncRequestProcessor meets
  any exception. (Laxman via mahadev)

  ZOOKEEPER-1134. ClientCnxnSocket string comparison using == rather than equals.
  (phunt via mahadev) 

  ZOOKEEPER-1119. zkServer stop command incorrectly reading comment lines in
  zoo.cfg (phunt via mahadev)

  ZOOKEEPER-1090. Race condition while taking snapshot can lead to not restoring data tree correctly (Vishal K via breed)

  ZOOKEEPER-1138. release audit failing for a number of new files. (phunt via mahadev) 

  ZOOKEEPER-1139. jenkins is reporting two warnings, fix these (phunt via mahadev)

  ZOOKEEPER-1142. incorrect stat output (phunt via mahadev)
  
  ZOOKEEPER-1144. ZooKeeperServer not starting on leader due to a race condition (Vishal K via camille)

  ZOOKEEPER-839. deleteRecursive does not belong to the other methods.
   (mahadev)
 
  ZOOKEEPER-1146. significant regression in client (c/python) performance.
  (phunt via mahadev)

  ZOOKEEPER-1150. fix for this patch to compile on windows. (dheeraj
  via mahadev)

  ZOOKEEPER-1055. check for duplicate ACLs in addACL() and create().
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1141. zkpython fails tests under python 2.4. (phunt via mahadev)
  
  ZOOKEEPER-1025. zkCli is overly sensitive to to spaces. (Laxman via camille)

  ZOOKEEPER-1117. zookeeper 3.3.3 fails to build with gcc >= 4.6.1 on
  Debian/Ubuntu (James Page via mahadev)

  ZOOKEEPER-1140. server shutdown is not stopping threads. (laxman via mahadev)

  ZOOKEEPER-1051. SIGPIPE in Zookeeper 0.3.* when send'ing after 
  cluster disconnection (Stephen Tyree via mahadev)

  ZOOKEEPER-1168. ZooKeeper fails to run with IKVM (Andrew Finnell via phunt)

  ZOOKEEPER-1165. better eclipse support in tests (Warren Turkal via phunt)
  
  ZOOKEEPER-1154. Data inconsistency when the node(s) with the highest zxid is not present at the time of leader election. (Vishal Kathuria via camille)
  
  ZOOKEEPER-1156. Log truncation truncating log too much - can cause data loss. (Vishal Kathuria via camille)

  ZOOKEEPER-1160. test timeouts are too small (breed via phunt)

  ZOOKEEPER-731. Zookeeper#delete , #create - async versions miss a verb in the javadoc. (Thomas Koch via camille)

  ZOOKEEPER-1108. Various bugs in zoo_add_auth in C. (Dheeraj Agrawal via mahadev)
 
  ZOOKEEPER-981. Hang in zookeeper_close() in the multi-threaded C client. 
  (Jeremy Stribling via mahadev) 

  ZOOKEEPER-1125. Intermittent java core test failures. (Vishar Kher via mahadev)

  ZOOKEEPER-961. Watch recovery after disconnection when connection string contains a prefix.
  (Matthias Spycher via mahadev)

  ZOOKEEPER-1136. NEW_LEADER should be queued not sent to match the Zab 1.0 protocol 
  on the twiki (breed via mahadev)

  ZOOKEEPER-1189. For an invalid snapshot file(less than 10bytes size) RandomAccessFile 
  stream is leaking. (Rakesh R via mahadev)

  ZOOKEEPER-1185. Send AuthFailed event to client if SASL authentication fails.
  (Eugene Kuntz via mahadev)

  ZOOKEEPER-1181. Fix problems with Kerberos TGT renewal.
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1268. problems with read only mode, intermittent test failures 
  and ERRORs in the log (phunt via mahadev)

  ZOOKEEPER-1270. testEarlyLeaderAbandonment failing intermittently, 
  quorum formed, no serving. (Flavio, Camille and Alexander Shraer via mahadev)

  ZOOKEEPER-1299. Add winconfig.h file to ignore in release audit. (mahadev)
  
  ZOOKEEPER-1354. AuthTest.testBadAuthThenSendOtherCommands fails intermittently (phunt via camille)

  ZOOKEEPER-1417. investigate differences in client last zxid handling btw c and java clients (thawan via camille) 

IMPROVEMENTS:
  ZOOKEEPER-724. Improve junit test integration - log harness information 
  (phunt via mahadev)

  ZOOKEEPER-766. forrest recipes docs don't mention the lock/queue recipe
  implementations available in the release (phunt via mahadev)

  ZOOKEEPER-769: Leader can treat observers as quorum members
  (Sergey Doroshenko via henryr)

  ZOOKEEPER-788: Add server id to message logs
  (Ivan Kelly via flavio)

  ZOOKEEPER-789. Improve FLE log messages (flavio via phunt)

  ZOOKEEPER-798. Fixup loggraph for FLE changes (Ivan Kelly via phunt)

  ZOOKEEPER-797 c client source with AI_ADDRCONFIG cannot be compiled with
  early glibc (Qian Ye via phunt)

  ZOOKEEPER-790. Last processed zxid set prematurely while establishing leadership
  (fpj via breed)

  ZOOKEEPER-821. Add ZooKeeper version information to zkpython (Rich
  Schumacher via mahadev)

  ZOOKEEPER-765.  Add python example script (Travis and Andrei via mahadev)

  ZOOKEEPER-809. Improved REST Interface (Andrei Savu via phunt)

  ZOOKEEPER-733. use netty to handle client connections (breed and phunt)

  ZOOKEEPER-853. Make zookeeper.is_unrecoverable return True or False
  in zkpython (Andrei Savu via henryr)

  ZOOKEEPER-864. Hedwig C++ client improvements (Ivan Kelly via breed)

  ZOOKEEPER-862. Hedwig created ledgers with hardcoded Bookkeeper ensemble and
  quorum size. Make these a server config parameter instead. (Erwin T via breed)

  ZOOKEEPER-926. Fork Hadoop common's test-patch.sh and modify for Zookeeper.
  (nigel)

  ZOOKEEPER-909. Extract NIO specific code from ClientCnxn
  (Thomas Koch via phunt)

  ZOOKEEPER-908. Remove code duplication and inconsistent naming in
  ClientCnxn.Packet creation (Thomas Koch via phunt)

  ZOOKEEPER-836. hostlist as string. (Thomas Koch via breed)

  ZOOKEEPER-921. zkPython incorrectly checks for existence of required
  ACL elements (Nicholas Knight via henryr)

  ZOOKEEPER-963. Make Forrest work with	JDK6 (Carl Steinbach via henryr)

  ZOOKEEPER-500. Async methods shouldnt throw exceptions (fpj via breed)

  ZOOKEEPER-977. passing null for path_buffer in zoo_create (breed via mahadev)

  ZOOKEEPER-465. Ledger size in bytes. (flavio via mahadev)

  ZOOKEEPER-980. allow configuration parameters for log4j.properties
  (phunt via mahadev)

  ZOOKEEPER-1042. Generate zookeeper test jar for maven installation
  (ivan kelly via breed)

  ZOOKEEPER-1030: Increase default for maxClientCnxns
  (Todd Lipcon via breed/mahadev/phunt)

  ZOOKEEPER-850: Switch from log4j to slf4j (Olaf Krische via michim)

  ZOOKEEPER-874. FileTxnSnapLog.restore does not call listener (diogo via fpj)

  ZOOKEEPER-1052. Findbugs warning in QuorumPeer.ResponderThread.run()  (fpj via michim)

  ZOOKEEPER-1094. Small improvements to LeaderElection and Vote classes (henryr via breed)

  ZOOKEEPER-1074. zkServer.sh is missing nohup/sleep, which are necessary 
  for remote invocation. (phunt via mahadev)

  ZOOKEEPER-965. Need a multi-update command to allow multiple znodes to be updated safely (Marshall McMullen and Ted Dunning via breed)

  ZOOKEEPER-1073. address a documentation issue in ZOOKEEPER-1030. (phunt via mahadev)

  ZOOKEEPER-1095. Simple leader election recipe
  (Eric Sammer via henry and phunt)

  ZOOKEEPER-1076. some quorum tests are unnecessarily extending QuorumBase (phunt via mahadev)

  ZOOKEEPER-1143. quorum send & recv workers are missing thread names
  (phunt via mahadev)
  
  ZOOKEEPER-1104. CLONE - In QuorumTest, use the same "for ( .. try { break }
  catch { } )" pattern in testFollowersStartAfterLeaders as in testSessionMove. 
  (Eugene Koontz via mahadev)
 
  ZOOKEEPER-1034. perl bindings should automatically find the zookeeper
  c-client headers (nicholas harteau via mahadev)

  ZOOKEEPER-1166. Please add a few svn:ignore properties (via phunt)

  ZOOKEEPER-1169. Fix compiler (eclipse) warnings in (generated) jute
  code (Thomas Koch via phunt)

  ZOOKEEPER-1171. fix build for java 7 (phunt via mahadev)

  ZOOKEEPER-1201. Clean SaslServerCallbackHandler.java. (Thomas Koch
  via mahadev) 

NEW FEATURES:
  ZOOKEEPER-729. Java client API to recursively delete a subtree.
  (Kay Kay via henry)

  ZOOKEEPER-747. Add C# generation to Jute (Eric Hauser via phunt)

  ZOOKEEPER-464. Need procedure to garbage collect ledgers
  (erwin via fpj)

  ZOOKEEPER-773. Log visualisation (Ivan Kelly via phunt)

  ZOOKEEPER-744. Add monitoring four-letter word (Andrei Savu via phunt)

  ZOOKEEPER-712. Bookie recovery. (erwin tam via breed)

  ZOOKEEPER-799. Add tools and recipes for monitoring as a contrib
  (Andrei Savu via phunt)

  ZOOKEEPER-808. Web-based Administrative Interface
  (Andrei Savu via phunt)

  ZOOKEEPER-775. A large scale pub/sub system (Erwin, Ivan and Ben via
  mahadev)

  ZOOKEEPER-1020. Implement function in C client to determine which host you're currently connected to. (stephen tyree via breed)

  ZOOKEEPER-1038. Move bookkeeper and hedwig code in subversion (breed)

  ZOOKEEPER-784. Server-side functionality for read-only mode (Sergey Doroshenko via henryr)

  ZOOKEEPER-992. MT Native Version of Windows C Client (Dheeraj Agrawal via michim)
 
  ZOOKEEPER-938. Support Kerberos authentication of clients. (Eugene Koontz
  via mahadev)

  ZOOKEEPER-1152. Exceptions thrown from handleAuthentication can cause buffer corruption issues in NIOServer. (camille via breed)

  ZOOKEEPER-999. Create an package integration project (Eric Yang via phunt)

  ZOOKEEPER-1107. automating log and snapshot cleaning (Laxman via phunt)

DEPRECATION:
  ZOOKEEPER-1153. Deprecate AuthFLE and LE. (Flavio Junqueira via mahadev)
  
Release 3.3.0 - 2010-03-24

Non-backward compatible changes:

BUGFIXES: 

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-59. Synchronized block in NIOServerCnxn (fpj via breed)

  ZOOKEEPER-524. DBSizeTest is not really testing anything (breed)

  ZOOKEEPER-469. make sure CPPUNIT_CFLAGS isn't overwritten
  (chris via mahadev)

  ZOOKEEPER-471. update zkperl for 3.2.x branch (chris via mahadev)

  ZOOKEEPER-470. include unistd.h for sleep() in c tests (chris via mahadev)

  ZOOKEEPR-460. bad testRetry in cppunit tests (hudson failure)
  (giri via mahadev)

  ZOOKEEPER-467.  Change log level in BookieHandle. (flavio via mahadev)

  ZOOKEEPER-482. ignore sigpipe in testRetry to avoid silent immediate
  failure. (chris via mahadev)

  ZOOKEEPER-487. setdata on root (/) crashes the servers (mahadev via phunt)

  ZOOKEEPER-457. Make ZookeeperMain public, support for HBase (and other)
  embedded clients (ryan rawson via phunt)

  ZOOKEEPER-481. Add lastMessageSent to QuorumCnxManager. (flavio via mahadev)

  ZOOKEEPER-479.  QuorumHierarchical does not count groups correctly
  (flavio via mahadev)

  ZOOKEEPER-466. crash on zookeeper_close() when using auth with empty cert
  (Chris Darroch via phunt)

  ZOOKEEPER-480. FLE should perform leader check when node is not leading and
  add vote of follower (flavio via mahadev)

  ZOOKEEPER-491. Prevent zero-weight servers from being elected.
  (flavio via mahadev)

  ZOOKEEPER-447. zkServer.sh doesn't allow different config files to be
  specified on the command line (henry robinson via phunt)

  ZOOKEEPER-493. patch for command line setquota (steve bendiola via phunt)

  ZOOKEEPER-311. handle small path lengths in zoo_create()
  (chris barroch via breed)

  ZOOKEEPER-484.  Clients get SESSION MOVED exception when switching from
  follower to a leader. (mahadev)

  ZOOKEEPER-490. the java docs for session creation are misleading/incomplete
  (phunt)

  ZOOKEEPER-501. CnxManagerTest failed on hudson. (flavio via mahadev)
  
  ZOOKEEPER-499. electionAlg should default to FLE (3) - regression
  (phunt via mahadev) 

  ZOOKEEPER-477. zkCleanup.sh is flaky (fernando via mahadev)

  ZOOKEEPER-498. Unending Leader Elections : WAN configuration
  (flavio via mahadev)

  ZOOKEEPER-508. proposals and commits for DIFF and Truncate messages from the
  leader to the followers is buggy. (mahadev and ben via mahadev)

  ZOOKEEPER-518. DEBUG message for outstanding proposals in leader should be
   moved to trace. (phunt)

  ZOOKEEPER-533.  ant error running clean twice (phunt via mahadev)

  ZOOKEEPER-535. ivy task does not enjoy being defined twice 
  (build error) (phunt via mahadev)

  ZOOKEEPER-420. build/test should not require install in zkpython
  (henry robinson via phunt)

  ZOOKEEPER-538. zookeeper.async causes python to segfault
  (henry robinson via phunt)

  ZOOKEEPER-542. c-client can spin when server unresponsive (Christian
  Wiedmann via mahadev)

  ZOOKEEEPER-510. zkpython lumps all exceptions as IOError, needs specialized
  exceptions for KeeperException types (henry & pat via mahadev)

  ZOOKEEPER-541. zkpython limited to 256 handles (henry robinson via phunt)

  ZOOKEEPER-554. zkpython can segfault when statting a deleted node
  (henry robinson via phunt)

  ZOOKEEPER-512. FLE election fails to elect leader (flavio via mahadev)

  ZOOKEEPER-563. ant test for recipes is broken. (mahadev via phunt)
 
  ZOOKEEPER-562. c client can flood server with pings if tcp send queue
  filled. (ben reed via mahadev)

  ZOOKEEPER-537. The zookeeper jar includes the java source files
  (Thomas Dudziak via phunt)

  ZOOKEEPER-551. unnecessary SetWatches message on new session.
  (phunt via flavio)

  ZOOKEEPER-566. "reqs" four letter word (command port) returns no information
  (phunt via breed)

  ZOOKEEPER-567. javadoc for getchildren2 needs to mention "new in 3.3.0"
  (phunt via breed)

  ZOOKEEPER-547. Sanity check in QuorumCnxn Manager and quorum communication
  port. (mahadev via breed)

  ZOOKEEPER-532. java compiler should be target Java 1.5
  (hiram chirino and phunt via breed)

  ZOOKEEPER-519. Followerhandler should close the socket if it gets an exception
  on a write. (mahadev via breed)

  ZOOKEEPER-570. AsyncHammerTest is broken, callbacks need to validate rc
  parameter (phunt via breed)

  ZOOKEEPER-3. syncLimit has slightly different comments in the class header,
  and > inline with the variable. (mahadev via breed)

  ZOOKEEPER-576. docs need to be updated for session moved exception and how
  to handle it (breed via phunt)

  ZOOKEEPER-582. ZooKeeper can revert to old data when a snapshot is created
  outside of normal processing (ben reed and mahadev via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (Patrick Hunt via mahadev)

  ZOOKEEPER-598. LearnerHandler is misspelt in the thread's constructor 
  (Henry Robinson via fpj)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk (take 2)
  (breed)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (take 3) (phunt via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk
  (take 4) (breed via mahadev)

  ZOOKEEPER-597. ASyncHammerTest is failing intermittently on hudson trunk 
  (take 5) (mahadev)

  ZOOKEEPER-611.  hudson build failiure (mahadev)

  ZOOKEEPER-611. hudson build failure (take 2) (mahadev)

  ZOOKEEPER-615. wrong javadoc for create with a sequence flag
  (mahadev via breed)

  ZOOKEEPER-588. remove unnecessary/annoying log of tostring error in 
  Request.toString() (phunt via breed)

  ZOOKEEPER-587.  client should log timeout negotiated with server
  (phunt via mahadev)

  ZOOKEEPER-610. cleanup final fields, esp those used for locking
  (phunt via henry)

  ZOOKEEPER-614. Improper synchronisation in getClientCnxnCount
  (henry via mahadev) 

  ZOOKEEPER-609. ObserverTest failure "zk should not be connected expected not
  same" (henry robinson via phunt)

  ZOOKEEPER-630. Trunk has duplicate ObserverTest.java files
  (henry robinson via phunt)

  ZOOKEEPER-627. zkpython arbitrarily restricts the size of a 'get' to 512
  bytes (henry robinson via mahadev)

  ZOOKEEPER-534. The test target in contib/bookkeeper does not depend on jar
  target. (phunt via mahadev)

  ZOOKEEPER-623. ClientBase in bookkeeper.util requires junit (fpj via breed)

  ZOOKEEPER-600. TODO pondering about allocation behavior in zkpython may be
  removed (gustavo via mahadev)

  ZOOKEEPER-596. The last logged zxid calculated by zookeeper servers could
  cause problems in leader election if data gets corrupted. (mahadev)

  ZOOKEEPER-637. Trunk build is failing (fpj via breed)
  
  ZOOKEEPER-637. Trunk build is failing - second patch (breed via fpj)

  ZOOKEEPER-644. Nightly build failed on hudson. (pat via mahadev)

  ZOOKEEPER-651: Log exception trace in QuorumCnxManager.SendWorker 
  (flavio via henry)

  ZOOKEEPER-608. Receipt of ACK from observer should not be logged as ERROR
  (henry via mahadev)

  ZOOKEEPER-647. hudson failure in testLeaderShutdown (flavio via mahadev)

  ZOOKEEPER-574. the documentation on snapcount in the admin guide has the
  wrong default (phunt via mahadev)

  ZOOKEEPER-656. SledgeHammer test - thread.run() deprecated (kay kay via mahadev)

  ZOOKEEPER-413. two flaws need addressing in the c tests that can cause false
  positive failures (phunt via mahadev)

  ZOOKEEPER-495. c client logs an invalid error when zookeeper_init is called
  with chroot (phunt via mahadev)

  ZOOKEEPER-589. When create a znode, a NULL ACL parameter cannot be accepted.
  (breed via mahadev)

  ZOOKEEPER-673.  Fix observer documentation regarding leader election (flavio
  via mahadev)

  ZOOKEEPER-672. typo nits across documentation (Kay Kay via mahadev)

  ZOOKEEPER-668. Close method in LedgerInputStream doesn't do anything (flavio 
  via mahadev)

  ZOOKEEPER-569. Failure of elected leader can lead to never-ending leader 
  election (henry via flavio)

  ZOOKEEPER-669. watchedevent tostring should clearly output the
  state/type/path (phunt via mahadev)

  ZOOKEEPER-683. LogFormatter fails to parse transactional log files (phunt
  via mahadev)

  ZOOKEEPER-682. Event is not processed when the watcher is set to watch "/"
  if chrooted (Scott Wang via mahadev)

  ZOOKEEPER-687. LENonterminatetest fails on some machines. (mahadev)

  ZOOKEEPER-681. Minor doc issue re unset maxClientCnxns (phunt via mahadev)

  ZOOKEEPER-622. Test for pending watches in send_set_watches should be moved
  (ben and steven via mahadev)

  ZOOKEEPER-689.  release build broken - ivysettings.xml not copied during
  "package" (phunt via mahadev)

  ZOOKEEPER-59. Synchronized block in NIOServerCnxn (flavio via mahadev) 

  ZOOKEEPER-691. Interface changed for NIOServer.Factory (breed via mahadev)

  ZOOKEEPER-685.  Race in LENonTerminateTest (henry via breed)

  ZOOKEEPER-677. c client doesn't allow ipv6 numeric connect string
  (breed & phunt & mahadev via breed)

  ZOOKEEPER-693. TestObserver stuck in tight notification loop in FLE
  (flavio via phunt)

  ZOOKEEPER-696. NPE in the hudson logs, seems nioservercnxn closed twice 
  (phunt via mahadev)

  ZOOKEEPER-511. bad error handling in FollowerHandler.sendPackets
  (mahadev via flavio)

  ZOOKEEPER-604. zk needs to prevent export of any symbol not listed in their
  api (mahadev)

  ZOOKEEPER-121. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev)

  ZOOKEEPER-698. intermittent JMX test failures due to not verifying QuorumPeer
  shutdown (phunt)

  ZOOKEEPER-121_2. SyncRequestProcessor is not closing log stream during
  shutdown (breed via mahadev)

  ZOOKEEPER-121_3. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev via phunt)

  ZOOKEEPER-121_4. SyncRequestProcessor is not closing log stream during
  shutdown (mahadev via breed)

  ZOOKEEPER-586. c client does not compile under cygwin (phunt, mahadev, breed via breed)

  ZOOKEEPER-624. The C Client cause core dump when receive error data from
  Zookeeper Server (mahadev)

  ZOOKEEPER-591. The C Client cannot exit properly in some situation (mahadev)

  ZOOKEEPER-591_2. The C Client cannot exit properly in some situation
  (mahadev via phunt)

  ZOOKEEPER-709. bookkeeper build failing with missing factory
  (phunt)

  ZOOKEEPER-708. zkpython failing due to undefined symbol
  deallocate_String_vector (mahadev via phunt)

  ZOOKEEPER-436. Bookies should auto register to ZooKeeper (erwin tam & fpj via breed)

  ZOOKEEPER-710. permanent ZSESSIONMOVED error after client app reconnects to zookeeper cluster (phunt via breed)

  ZOOKEEPER-718. the fatjar is missing libraries (ben via mahadev)

  ZOOKEEPER-717.  add a preferred list to the instancemanager (breed via
  mahadev)

IMPROVEMENTS:
  ZOOKEEPER-473. cleanup junit tests to eliminate false positives due to
  "socket reuse" and failure to close client (phunt via mahadev)
 
  ZOOKEEPER-488. Fix zkServer.sh to add clover.jar in classpath
  (Giridharan Kesavan via gkesavan)  

  ZOOKEEPER-516. add support for 10 minute test ie "pre-commit" test (phunt)

  ZOOKEEPER-529. Use Ivy to pull dependencies and also generate pom (phunt
  via mahadev)
  
  ZOOKEEPER-530. Memory corruption: Zookeeper c client IPv6 implementation
  does not honor struct sockaddr_in6 size (isabel drost via mahadev)

  ZOOKEEPER-549. Refactor Followers and related classes into a Peer->Follower
  hierarchy in preparation for Observers (henry robinson via mahadev)

  ZOOKEEPER-472.  Making DataNode not instantiate a HashMap when the node is
  ephmeral (Erik Holstad via mahadev)

  ZOOKEEPER-425. Add OSGi metadata to zookeeper.jar (david bosschaert via breed)

  ZOOKEEPER-599. Changes to FLE and QuorumCnxManager to support Observers
  (fpj via breed)

  ZOOKEEPER-506. QuorumBase should use default leader election (fpj via breed)

  ZOOKEEPER-633. Fetch netty using ivy for bookkeeper (giri via fpj)

  ZOOKEEPER-544. improve client testability - allow test client to access
  connected server location (phunt via breed)

  ZOOKEEPER-426. Windows versions of zookeeper scripts
  (David Bosschaert via breed)

  ZOOKEEPER-638. upgrade ivy to 2.1.0 final from 2.1.0 release
  candidate (phunt via breed)

  ZOOKEEPER-648. Fix releaseaudit warning count to zero (phunt via henry)

  ZOOKEEPER-626. ensure the c/java cli's print xid/sessionid/etc... in hex
  (pat via mahadev)

  ZOOKEEPER-655. StringBuffer -> StringBuilder - conversion of references as
  necessary (Kay Kay via henry)

  ZOOKEEPER-612. Make Zookeeper C client can be compiled by gcc of early
  version (qian via mahadev)

  ZOOKEEPER-456. CREATOR_ALL_ACL has unnecessary PERMS.ADMIN in the
  declartion. (phunt via mahadev)

  ZOOKEEPER-593.  java client api does not allow client to access negotiated
  session timeout (phunt via mahadev)

  ZOOKEEPER-507. BookKeeper client re-write (Utkarsh and ben via mahadev)

  ZOOKEEPER-665. Add BookKeeper streaming documentation (flavio via mahadev)

  ZOOKEEPER-664.  BookKeeper API documentation (flavio via mahadev)

  ZOOKEEPER-607. improve bookkeeper overview (flavio via mahadev)

  ZOOKEEPER-485. Need ops documentation that details supervision of ZK server
  processes. (phunt via mahadev)

  ZOOKEEPER-658. update forrest docs - AuthFLE no longer supported (flavio via
  mahadev)

  ZOOKEEPER-640. make build.xml more configurable to ease packaging for linux
  distros (phunt via mahadev)

  ZOOKEEPER-579. zkpython needs more test coverage for ACL code paths (henry
  via mahadev)

  ZOOKEEPER-688. explain session expiration better in the docs & faq (phunt
  via mahadev)

  ZOOKEEPER-663. hudson failure in ZKDatabaseCorruptionTest (mahadev via henryr)

  ZOOKEEPER-543. Tests for ZooKeeper examples (steven via mahadev)

  ZOOKEEPER-692. upgrade junit to latest version (4.8.1) (phunt via mahadev)

  ZOOKEEPER-601. allow configuration of session timeout min/max bounds (phunt
  via mahadev)

  ZOOKEEPER-751. Recipe heading refers to 'recoverable' but should be
  'revocable' (Michi Mutsuzaki via rakeshr)

NEW FEATURES:
  ZOOKEEPER-539. generate eclipse project via ant target. (phunt via mahadev)

  ZOOKEEPER-555. Add stat information to GetChildrenResponse. (Arni Jonson and
  phunt via mahadev)

  ZOOKEEPER-550.  Java Queue Recipe. (steven cheng via mahadev)

  ZOOKEEPER-368. Observers: core functionality (henry robinson via mahadev)

  ZOOKEEPER-496. zookeeper-tree utility for export, import and incremental
  updates (anirban roy via breed)

  ZOOKEEPER-572. add ability for operator to examine state of watches
  currently registered with a server (phunt via mahadev)

  ZOOKEEPER-678. Gui browser application to view and edit the contents of a
  zookeeper instance (Colin Goodheart-Smithe via phunt)

  ZOOKEEPER-635. Server supports listening on a specified network address (phunt via breed)
  
Release 3.2.0 - 2009-06-30

Non-backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-444. perms definition for PERMS_ALL differ in C and java (mahadev)

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-303. Bin scripts dont work on a Mac. (tom white via mahadev)
  
  ZOOKEEPER-330. zookeeper standalone server does not startup with just a
  port and datadir. (chris darroch and mahadev)

  ZOOKEEPER-319. add locking around auth info in zhandle_t.
  (chris darroch via mahadev)

  ZOOKEEPER-320. call auth completion in free_completions().
  (chris darroch via mahadev)

  ZOOKEEPER-334. bookkeeper benchmark (testclient.java) has compiling errors.
  (flavio and mahadev)

  ZOOKEEPER-281. autoreconf fails for /zookeeper-3.0.1/src/c/ (phunt)

  ZOOKEEPER-318. remove locking in zk_hashtable.c or add locking in
  collect_keys() (chris darroch via mahadev)

  ZOOKEEPER-333. helgrind thread issues identified in mt c client code
  (mahadev via phunt)

  ZOOKEEPER-309. core dump using zoo_get_acl() (mahadev via phunt)

  ZOOKEEPER-341.  regression in QuorumPeerMain, 
  tickTime from config is lost, cannot start quorum (phunt via mahadev)

  ZOOKEEPER-360. WeakHashMap in Bookie.java causes NPE (flavio via mahadev)
  
  ZOOKEEPER-362. Issues with FLENewEpochTest. (fix bug in Fast leader election)
  (flavio via mahadev)

  ZOOKEEPER-363. NPE when recovering ledger with no hint. (flavio via mahadev)

  ZOOKEEPER-370. Fix critical problems reported by findbugs.
  (flavio via mahadev)

  ZOOKEEPER-347. zkfuse uses non-standard String. (patrick hunt via mahadev)

  ZOOKEEPER-355. make validatePath non public in Zookeeper client api.
  (phunt via mahadev)

  ZOOKEEPER-374. Uninitialized struct variable in C causes warning which 
  is treated as an error (phunt via mahadev)

  ZOOKEEPER-337. improve logging in leader election lookForLeader method when
  address resolution fails (phunt via mahadev)

  ZOOKEEPER-367. RecoveryTest failure - "unreasonable length" IOException
  (mahadev via phunt)

  ZOOKEEPER-346. remove the kill command fro mthe client port.
  (phunt via mahadev)

  ZOOKEEPER-377. running ant cppunit tests, a failure still results in 
  BUILD SUCCESSFUL (giri via mahadev)

  ZOOKEEPER-382. zookeeper cpp tests fails on 64 bit machines with gcc 4.1.2
  (mahadev via phunt)

  ZOOKEEPER-365. javadoc is wrong for setLast in LedgerHandle
  (flavio via phunt)

  ZOOKEEPER-392. Change log4j properties in bookkeeper. (flavio via mahadev)

  ZOOKEEPER-400. Issues with procedure to close ledger. (flavio)

  ZOOKEEPER-405. nullpointer exception in zookeeper java shell.
  (mahadev via breed)

  ZOOKEEPER-410. address all findbugs warnings in client/server classes.
  (phunt via breed)
  
  ZOOKEEPER-403. cleanup javac compiler warnings. (flavio via breed)

  ZOOKEEPER-407. address all findbugs warnings in
  org.apache.zookeeper.server.quorum.** packages.
  (flavio via breed)

  ZOOKEEPER-411. Building zookeeper fails on RHEL 5 64 bit during test-cppunit
  (mahadev via phunt)

  ZOOKEEPER-402. zookeeper c library segfaults on data for a node in zookeeper
  being null. (mahadev via phunt)

  ZOOKEEPER-415. zookeeper c tests hang. (mahadev via phunt)

  ZOOKEEPER-385. crctest failed on hudson patch test (mahadev via phunt)

  ZOOKEEPER-192.  trailing whitespace in config file can cause number format
  exceptions (phunt via breed)
 
  ZOOKEEPER-409. address all findbugs warnings in jute related classes
  (phunt via breed)

  ZOOKEEPER-416. bookkeeper jar includes unnnecessary files.
  (flavio via mahadev)

  ZOOKEEPER-419. Reference counting bug in Python bindings causes abort errors
  (henry robinson via phunt)

  ZOOKEEPER-421. zkpython run_tests.sh is missing #!
  (henry robinson via phunt)

  ZOOKEEPER-406. address all findbugs warnings in persistence classes.
  (phunt et al via breed)

  ZOOKEEPER-435. allow "super" admin digest based auth to be configurable
  (phunt via breed)

  ZOOKEEPER-375. zoo_add_auth only retains most recent auth on re-sync.
  (mahadev)

  ZOOKEEPER-433.  getacl on root znode (/) fails. (phunt via mahadev)

  ZOOKEEPER-408. address all findbugs warnings in persistence classes.
  (phunt, mahadev, flavio via mahadev)

  ZOOKEEPER-427. ZooKeeper server unexpectedly high CPU utilisation
  (Sergey Zhuravlev via breed)

  ZOOKEEPER-446. some traces of the host auth scheme left (breed via mahadev)

  ZOOKEEPER-438.  addauth fails to register auth on new client that's not yet
  connected (breed via mahadev)

  ZOOKEEPER-448. png files do nto work with forrest. (mahadev)

  ZOOKEEPER-417. stray message problem when changing servers
  (breed via mahadev)

  ZOOKEEPER-449. sesssionmoved in java code and ZCLOSING in C have the same
  value. (mahadev)

  ZOOKEEPER-452. zookeeper performance graph should have percentage of reads
  rather than percentage of writes - zkperfRW-3.2.jpg (mahadev)

  ZOOKEEPER-450. emphemeral cleanup not happening with session timeout.
  (breed via mahadev)

  ZOOKEEPER-453. Worker is not removed in QuorumCnxManager upon crash.
  (flavio via mahadev)

  ZOOKEEPER-454. allow compilation with jdk1.5 (phunt)

  ZOOKEEPER-455. zookeeper c client crashes with chroot specified in the string.
  (phunt via mahadev)

  ZOOKEEPER-468. avoid compile warning in send_auth_info().

IMPROVEMENTS:
  ZOOKEEPER-308. improve the atomic broadcast performance 3x.
  (breed via mahadev)

  ZOOKEEPER-326. standalone server ignores tickTime configuration.
  (chris darroch via mahadev)

  ZOOKEEPER-279. Allow specialization of quorum config parsing
  (e.g. variable expansion in zoo.cfg) (Jean-Daniel Cryans via phunt)

  ZOOKEEPER-351. to run checkstyle (giridharan kesavan via mahadev)

  ZOOKEEPER-350. to run rats for releaseaudit.
  (giridharan kesavan via mahadev)

  ZOOKEEPER-352. to add standard ant targets required by test-patch.sh script
  (giridharan kesavan via mahadev)

  ZOOKEEPER-353. javadoc warnings needs to be fixed.
  (giridharan kesavan via mahadev) 

  ZOOKEEPER-354.  to fix javadoc warning in the source files. (mahadev)

  ZOOKEEPER-349. to automate patch testing. (giridharan kesavan via mahadev)

  ZOOKEEPER-288. Cleanup and fixes to BookKeeper (flavio via mahadev)
 
  ZOOKEEPER-305.  Replace timers with semaphores in FLENewEpochTest.
  (flavio via mahadev)

  ZOOKEEPER-60. Get cppunit tests running as part of Hudson CI.
  (girish via mahadev)

  ZOOKEEPER-343. add tests that specifically verify the zkmain and 
  qpmain classes. (phunt via mahadev)

  ZOOKEEPER-361. integrate cppunit testing as part of hudson patch process.
  (giri via mahadev)

  ZOOKEEPER-373. One thread per bookie (flavio via mahadev) 

  ZOOKEEPER-384. keeper exceptions missing path (phunt via mahadev)

  ZOOKEEPER-380. bookkeeper should have a streaming api so that its easier to
  store checpoints/snapshots in bookkeeper. (mahadev via flavio)
 
  ZOOKEEPER-389. add help/usage to the c shell cli.c (phunt via mahadev)

  ZOOKEEPER-376. ant test target re-compiles cppunit code every time
  (phunt via mahadev)

  ZOOKEEPER-391. bookeeper mainline code should not be calling
  printStackTrace. (flavio via mahadev) 
 
  ZOOKEEPER-300. zk jmx code is calling printStackTrace when creating bean
  name (should not be) (phunt via mahadev)

  ZOOKEEPER-94. JMX tests are needed to verify that the JMX MBeans work
  properly (phunt via mahadev)

  ZOOKEEPER-404. nightly build failed on hudson.
  (henry robinson and pat via mahadev)

  ZOOKEEPER-345. the CLIs should allow addAuth to be invoked.
  (henry robinson via breed)

  ZOOKEEPER-292. commit configure scripts (autotools) to svn for c projects and
  include in release (phunt via breed)

  ZOOKEEPER-383. Asynchronous version of createLedger(). (flavio via mahadev)

  ZOOKEEPER-358. Throw exception when ledger does not exist. (flavio via breed)

  ZOOKEEPER-431. Expose methods to ease ZK integration. (Jean-Daniel via breed)

  ZOOKEEPER-396. race condition in zookeeper client library between
  zookeeper_close and zoo_synchronous api. (mahadev)

  ZOOKEEPER-196. doxygen comment for state argument of watcher_fn typedef and
  implementation differ ("...one of the *_STATE constants, otherwise -1")
  (breed via mahadev)

  ZOOKEEPER-336. single bad client can cause server to stop accepting
  connections (henry robinson via breed)
 
  ZOOKEEPER-434. the java shell should indicate connection status on command
  prompt (henry robinson via breed)

  ZOOKEEPER-437. Variety of Documentation Updates (grant via mahadev)

  ZOOKEEPER-443. trace logging in watch notification not wrapped with
  istraceneabled - inefficient (pat via mahadev)

  ZOOKEEPER-432. Various improvements to zkpython bindings.
  (henry via mahadev)

  ZOOKEEPER-428. logging should be makred as warn rathen than error in
  NIOServerCnxn. (phunt via mahadev)

  ZOOKEEPER-422. Java CLI should support ephemeral and sequential node creation
  (henry via breed)

  ZOOKEEPER-315. add forrest docs for bookkeeper. (flavio via mahadev)

  ZOOKEEPER-329. document how to integrate 3rd party authentication into ZK
  server ACLs. (breed via mahadev)

  ZOOKEEPER-356. Masking bookie failure during writes to a ledger
  (flavio via breed)

  ZOOKEEPER-327. document effects (latency) of storing large amounts of data
  in znodes. (breed via mahadev)

  ZOOKEEPER-264. docs should include a state transition diagram for client
  state (breed via mahadev)

  ZOOKEEPER-440. update the performance documentation in forrest
  (breed via phunt)

NEW FEATURES:

  ZOOKEEPER-371. jdiff documentation included in build/release (giri via phunt)

  ZOOKEEPER-78. added a high level protocol/feature - for easy Leader
  Election or exclusive Write Lock creation (mahadev via phunt)

  ZOOKEEPER-29. Flexible quorums (flavio via mahadev) 

  ZOOKEEPER-378. perl binding for zookeeper (chris darroch via mahadev)

  ZOOKEEPER-386. improve java cli shell. (henry robinson via mahadev)

  ZOOKEEPER-36. REST access to ZooKeeper (phunt via mahadev)

  ZOOKEEPER-395. Python bindings. (henry robinson via mahadev)

  ZOOKEEPER-237. Add a Chroot request (phunt and mahadev)


Release 3.1.0 - 2009-02-06
  
Non-backward compatible changes:

BUGFIXES: 

  ZOOKEEPER-255. zoo_set() api does not return stat datastructure.
  (avery ching via mahadev)
  
  ZOOKEEPER-246. review error code definition in both source and docs. 
  (pat via mahadev)

Backward compatible changes:

BUGFIXES: 
  ZOOKEEPER-211. Not all Mock tests are working (ben via phunt)

  ZOOKEEPER-223. change default level in root logger to INFO.
  (pat via mahadev) 
   
  ZOOKEEPER-212. fix the snapshot to be asynchronous. (mahadev and ben)

  ZOOKEEPER-213. fix programmer guide C api docs to be  in sync with latest
  zookeeper.h (pat via mahadev)

  ZOOKEEPER-219. fix events.poll timeout in watcher test to be longer.
  (pat via mahadev)
   
  ZOOKEEPER-217. Fix errors in config to be thrown as Exceptions. (mahadev)

  ZOOKEEPER-228. fix apache header missing in DBTest. (mahadev)

  ZOOKEEPER-218. fix the error in the barrier example code. (pat via mahadev)

  ZOOKEEPER-206. documentation tab should contain the version number and 
  other small site changes. (pat via mahadev) 

  ZOOKEEPER-226. fix exists calls that fail on server if node has null data.
  (mahadev) 

  ZOOKEEPER-204. SetWatches needs to be the first message after auth
  messages to the server (ben via mahadev)
  
  ZOOKEEPER-208. Zookeeper C client uses API that are not thread safe,
  causing crashes when multiple instances are active.
  (austin shoemaker, chris daroch and ben reed via mahadev) 

  ZOOKEEPER-227. gcc warning from recordio.h (chris darroch via mahadev)

  ZOOKEEPER-232. fix apache licence header in TestableZookeeper (mahadev)

  ZOOKEEPER-249. QuorumPeer.getClientPort() always returns -1.
  (nitay joffe via mahadev)

  ZOOKEEPER-248.  QuorumPeer should use Map interface instead of HashMap
  implementation. (nitay joffe via mahadev)

  ZOOKEEPER-241. Build of a distro fails after clean target is run.
  (patrick hunt via mahadev)

  ZOOKEEPER-245. update readme/quickstart to be release tar, rather than
  source, based (patrick hunt via mahadev)

  ZOOKEEPER-251. NullPointerException stopping and starting Zookeeper servers
  (mahadev via phunt)

  ZOOKEEPER-250. isvalidsnapshot should handle the case of 0 snapshot
  files better. (mahadev via phunt)
 
  ZOOKEEPER-265. remove (deprecate) unused NoSyncConnected from KeeperState.
  (phunt via mahadev)

  ZOOKEEPER-273. Zookeeper c client build should not depend on CPPUNIT. (pat
and runping via mahadev)

  ZOOKEEPER-268.  tostring on jute generated objects can cause NPE. (pat via mahadev)

  ZOOKEEPER-267.  java client incorrectly generating syncdisconnected event when in disconnected state. (pat via breed)

  ZOOKEEPER-263. document connection host:port as comma separated list in forrest docs (pat via breed)
  
  ZOOKEEPER-275. Bug in FastLeaderElection. (flavio via mahadev)

  ZOOKEEPER-272. getchildren can fail for large number of children. (mahadev)

  ZOOKEEPER-16. Need to do path validation. (pat, mahadev) 

  ZOOKEEPER-252. PurgeTxnLog is not handling the new dataDir directory
  structure (mahadev via phunt)

  ZOOKEEPER-291. regression for legacy code using KeeperException.Code 
  constants (due to 246). (pat via mahadev)

  ZOOKEEPER-255. zoo_set() api does not return stat datastructure.
  (avery ching via mahadev)

  ZOOKEEPER-293. zoo_set needs to be abi compatible (3.1 changed the
signature), fix this by adding zoo_set2 (pat via mahadev)

  ZOOKEEPER-302. Quote values in JMX objectnames. (tom and pat via mahadev)

IMPROVEMENTS:
   
  ZOOKEEPER-64. Log system env information when initializing server and
  client (pat via mahadev)

  ZOOKEEPER-243. add SEQUENCE flag documentation to the programming guide.
  (patrick hunt via mahadev)
  
   ZOOKEEPER-161. Content needed: "Designing a ZooKeeper Deployment"
  (breed via phunt)
   
   ZOOKEEPER-247. fix formatting of C API in ACL section of programmer guide.
   (patrick hunt via mahadev)

   ZOOKEEPER-230. Improvements to FLE. (Flavio via mahadev)

   ZOOKEEPER-225. c client should log an info message in zookeeper_init
   detailing connection parameters. (pat via mahadev)

   ZOOKEEPER-222.  print C client log message timestamp in human readable
   form. (pat via mahadev) 
  
   ZOOKEEPER-256. support use of JMX to manage log4j configuration at runtime.
   (pat via mahadev)

   ZOOKEEPER-214. add new "stat reset" command to server admin port.
   (pat via mahadev)

   ZOOKEEPER-258. docs incorrectly state max client timeout as 60 seconds
   (it's based on server ticktime). (phunt via mahadev)

   ZOOKEEPER-135. Fat jar build target. (phunt and breed via mahadev)

   ZOOKEEPER-234. Eliminate using statics to initialize the sever. Should
   allow server to be more embeddable in OSGi enviorments. (phunt)

   ZOOKEEPER-259. cleanup the logging levels used (use the correct level)
   and messages generated. (phunt via breed)

   ZOOKEEPER-210. Require Java 6. (phunt via breed)
    
   ZOOKEEPER-177.  needed: docs for JMX (phunt via mahadev)
  
   ZOOKEEPER-253. documentation of DataWatcher state transition is misleading
regarding auto watch reset on reconnect. (phunt via mahadev)

   ZOOKEEPER-269. connectionloss- add more documentation to detail. (phunt and
flavio via mahadev)

   ZOOKEEPER-260. document the recommended values for server id's
   (mahadev via phunt)

   ZOOKEEPER-215. expand system test environment (breed via phunt)

   ZOOKEEPER-229. improve documentation regarding user's responsibility to
   cleanup datadir (snaps/logs) (mahadev via phunt)

   ZOOKEEPER-69. ZooKeeper logo
   
   ZOOKEEPER-286. Make GenerateLoad use InstanceContainers. (breed via mahadev)

   ZOOKEEPER-220. programming guide watches section should clarify
   server/clientlib role in data/child watch maint. (breed via phunt)
 
   ZOOKEEPER-289. add debug messages to nioserver select loop. (mahadev)

NEW FEATURES:

   ZOOKEEPER-276. Bookkeeper contribution (Flavio and Luca Telloli via mahadev)
  
   ZOOKEEPER-231. Quotas in ZooKeeper. (mahadev)

Release 3.0.0 - 2008-10-21

Non-backward compatible changes:

  ZOOKEEPER-43. Server side of auto reset watches. (breed via mahadev)

  ZOOKEEPER-132. Create Enum to replace CreateFlag in ZooKepper.create 
  method (Jakob Homan via phunt)

  ZOOKEEPER-139. Create Enums for WatcherEvent's KeeperState and EventType
  (Jakob Homan via phunt)

  ZOOKEEPER-18. keeper state inconsistency (Jakob Homan via phunt)

  ZOOKEEPER-38. headers (version+) in log/snap files (Andrew Kornev and Mahadev
  Konar via breed)

  ZOOKEEPER-8. Stat enchaned to include num of children and size
  (phunt)

  ZOOKEEPER-6. List of problem identifiers in zookeeper.h
  (phunt)

  ZOOKEEPER-7. Use enums rather than ints for types and state
  (Jakob Homan via mahadev)

  ZOOKEEPER-27. Unique DB identifiers for servers and clients
  (mahadev)

  ZOOKEEPER-32. CRCs for ZooKeeper data
  (mahadev)

  ZOOKEEPER-33. Better ACL management
  (mahadev)
   
Backward compatible changes:

  BUGFIXES: 

  ZOOKEEPER-203. fix datadir typo in releasenotes (phunt)

  ZOOKEEPER-145. write detailed release notes for users migrating from 2.x
  to 3.0 (phunt)

  ZOOKEEPER-23. Auto reset of watches on reconnect (breed via phunt)

  ZOOKEEPER-191. forrest docs for upgrade. (mahadev via phunt)

  ZOOKEEPER-201. validate magic number when reading snapshot and transaction
  logs (mahadev via phunt)

  ZOOKEEPER-200. the magic number for snapshot and log must be different
  (currently same) (phunt)

  ZOOKEEPER-199. fix log messages in persistence code (mahadev via phunt)

  ZOOKEEPER-197. create checksums for snapshots (mahadev via phunt)

  ZOOKEEPER-198. apache license header missing from FollowerSyncRequest.java
  (phunt)

  ZOOKEEPER-5. Upgrade Feature in Zookeeper server. (mahadev via phunt)

  ZOOKEEPER-194. Fix terminology in zookeeperAdmin.xml
  (Flavio Paiva Junqueira)

  ZOOKEEPER-151. Document change to server configuration
  (Flavio Paiva Junqueira)

  ZOOKEEPER-193. update java example doc to compile with latest zookeeper
  (phunt)

  ZOOKEEPER-187. CreateMode api docs missing (phunt)

  ZOOKEEPER-186. add new "releasenotes.xml" to forrest documentation
  (phunt)

  ZOOKEEPER-190. Reorg links to docs and navs to docs into related sections
  (robbie via phunt)

  ZOOKEEPER-189. forrest build not validated xml of input documents
  (robbie via phunt)

  ZOOKEEPER-188. Check that election port is present for all servers
  (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-185. Improved version of FLETest (Flavio Paiva Junqueira)

  ZOOKEEPER-184. tests: An explicit include derective is needed for the usage
  of memcpy(), memset(), strlen(), strdup() and free() functions
  (Maxim P. Dementiev via phunt)

  ZOOKEEPER-183. Array subscript is above array bounds in od_completion(),
  src/cli.c. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-182.  zookeeper_init accepts empty host-port string and returns
  valid pointer to zhandle_t. (Maxim P. Dementiev via phunt)

  ZOOKEEPER-17. zookeeper_init doc needs clarification (phunt)

  ZOOKEEPER-181. Some Source Forge Documents did not get moved over: 
  javaExample, zookeeperTutorial, zookeeperInternals (robbie via phunt)

  ZOOKEEPER-180. Placeholder sections needed in document for new topics that
  the umbrella jira discusses (robbie via phunt)

  ZOOKEEPER-179. Programmer's Guide "Basic Operations" section is missing 
  content (robbie via phunt)

  ZOOKEEPER-178. FLE test. (Flavio Paiva Junqueira)

  ZOOKEEPER-159. Cover two corner cases of leader election
  (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-156. update programmer guide with acl details from old wiki page
  (phunt)

  ZOOKEEPER-154. reliability graph diagram in overview doc needs context
  (phunt)

  ZOOKEEPER-157. Peer can't find existing leader (Flavio Paiva Junqueira)

  ZOOKEEPER-155. improve "the zookeeper project" section of overview doc
  (phunt)

  ZOOKEEPER-140. Deadlock in QuorumCnxManager (Flavio Paiva Junqueira)

  ZOOKEEPER-147. This is version of the documents with most of the [tbd...]
  scrubbed out (robbie via phunt)

  ZOOKEEPER-150. zookeeper build broken (mahadev via phunt)

  ZOOKEEPER-136. sync causes hang in all followers of quorum. (breed)

  ZOOKEEPER-134. findbugs cleanup (phunt)

  ZOOKEEPER-133. hudson tests failing intermittently (phunt)

  ZOOKEEPER-144. add tostring support for watcher event, and enums for event
  type/state (Jakob Homan via phunt)

  ZOOKEEPER-21. Improve zk ctor/watcher (state transition) docs (phunt)

  ZOOKEEPER-142. Provide Javadoc as to the maximum size of the data byte 
  array that may be stored within a znode (Jakob Homan via phunt)

  ZOOKEEPER-93. Create Documentation for Zookeeper (phunt)

  ZOOKEEPER-117. threading issues in Leader election (fpj via breed)

  ZOOKEEPER-137. client watcher objects can lose events (phunt via breed)

  ZOOKEEPER-131. Old leader election can elect a dead leader over and over
  again (breed via mahadev)

  ZOOKEEPER-130. update build.xml to support apache release process
  (phunt via mahadev)

  ZOOKEEPER-118. findbugs flagged switch statement in 
  followerrequestprocessor.run() (Flavio Paiva Junqueira via phunt)

  ZOOKEEPER-115. Potential NPE in QuorumCnxManager
  (Flavio Paiva Junqueira)

  ZOOKEEPER-114. cleanup ugly event messages in zookeeper client 
  (Jakob Homan)

  ZOOKEEPER-112. src/java/main ZooKeeper.java has test code embedded into it.
  (phunt)

  ZOOKEEPER-39. Use Watcher objects rather than boolean on read operations.
  (Andrew Kornev)

  ZOOKEEPER-97. supports optional output directory in code generator. (Hiram
  Chirino via phunt)

  ZOOKEEPER-101. Integrate ZooKeeper with "violations" feature on hudson
  (phunt)
 
  ZOOKEEPER-105. Catch Zookeeper exceptions and print on the stderr. 
  (Anthony Urso via Mahadev)
 
  ZOOKEEPER-42. Change Leader Election to fast tcp. (Flavio Paiva Junqueira
  via phunt)

  ZOOKEEPER-48. auth_id now handled correctly when no auth ids present
  (Benjamin Reed via phunt)
 
  ZOOKEEPER-44. Create sequence flag children with prefixes of 0's so that
  they can be lexicographically sorted. (Jakob Homan via mahadev)
  
  ZOOKEEPER-108. Fix sync operation reordering on a Quorum. 
  (Flavio Paiva Junqueira via Mahadev)

  ZOOKEEPER-25. Fuse module for Zookeeper. (Swee Lim, Bart, Patrick Hunt and
  Andrew Kornev via Mahadev)

  ZOOKEEPER-58. Race condition on ClientCnxn.java (breed)

  ZOOKEEPER-56. Add clover support to build.xml. (Patrick Hunt via mahadev)

  ZOOKEEPER-75. register the ZooKeeper mailing lists with nabble.com (phunt)
  
  ZOOKEEPER-54. remove sleeps in the tests. (phunt)

  ZOOKEEPER-55. build.xml failes to retrieve a release number from SVN and 
  the ant target "dist" fails (Andrew Kornev)

  ZOOKEEPER-89. invoke WhenOwnerListener.whenNotOwner() when the ZK 
  connection fails (james strachan)

  ZOOKEEPER-90. invoke WhenOwnerListener.whenNotOwner() when the ZK
  session expires and the znode is the leader (james strachan)

  ZOOKEEPER-82. Make the ZooKeeperServer more DI friendly. (Hiram Chirino via
  mahadev)

  ZOOKEEPER-110. Build script relies on svnant, which is not compatible 
  with subversion 1.5 working copies (Jakob Homan)

  ZOOKEEPER-111. Significant cleanup of existing tests. (Patrick Hunt via
  mahadev)
 
  ZOOKEEPER-122. Fix  NPE in jute's Utils.toCSVString. (Anthony Urso via
  mahadev)
  
 ZOOKEEPER-123. Fix  the wrong class is specified for the logger. (Jakob Homan
 via mahadev)

 ZOOKEEPER-2. Fix synchronization issues in QuorumPeer and FastLeader
 election. (Flavio Paiva Junqueira via mahadev)

 ZOOKEEPER-125. Remove unwanted class declaration in FastLeaderElection. 
 (Flavio Paiva Junqueira via mahadev)

 ZOOKEEPER-61. Address (remove) use of sleep(#) in client/server test cases.
 (phunt)

 ZOOKEEPER-75. cleanup the library directory (phunt)

 ZOOKEEPER-109. cleanup of NPE and Resource issue nits found by static
 analysis (phunt)

 ZOOKEEPER-76. Commit 677109 removed the cobertura library, but not the 
 build targets. (phunt)

 ZOOKEEPER-63. Race condition in client close() operation. (phunt via breed)

 ZOOKEEPER-70. Add skeleton forrest doc structure for ZooKeeper (phunt)

 ZOOKEEPER-79. Document jacob's leader election on the wiki recipes page 
 (Flavio Junqueira)

 ZOOKEEPER-73. Move ZK wiki from SourceForge to Apache (phunt)

 ZOOKEEPER-72. Initial creation/setup of ZooKeeper ASF site. (phunt)

 ZOOKEEPER-71. Determine what to do re ZooKeeper Changelog(s) (mahadev)

 ZOOKEEPER-68. parseACLs in ZooKeeper.java fails to parse elements of ACL,
 should be lastIndexOf rather than IndexOf (mahadev)

 ZOOKEEPER-130. update build.xml to support apache release process. 
 (phunt via mahadev)

 ZOOKEEPER-131. Fix Old leader election can elect a dead leader over and over
 again. (breed via mahadev)

 ZOOKEEPER-137. client watcher objects can lose events (Patrick Hunt via breed)

 ZOOKEEPER-117. threading issues in Leader election (Flavio Junqueira and
 Patrick Hunt via breed)

 ZOOKEEPER-128. test coverage on async client operations needs to be improved
 (phunt)

 ZOOKEEPER-127.  Use of non-standard election ports in config breaks services
 (Mark Harwood and Flavio Junqueira via breed)

 ZOOKEEPER-53. tests failing on solaris. (phunt)

 ZOOKEEPER-172. FLE Test (Flavio Junqueira via breed)

 ZOOKEEPER-41. Sample startup script (mahadev)

 ZOOKEEPER-33. Better ACL management (Mahadev Konar)

 ZOOKEEPER-49. SetACL does not work (breed)

 ZOOKEEPER-20. Child watches are not triggered when the node is deleted
 (phunt)

 ZOOKEEPER-15. handle failure better in build.xml:test (phunt)

 ZOOKEEPER-11. ArrayList is used instead of List (phunt)

 ZOOKEEPER-45. Restructure the SVN repository after initial import (phunt)

 ZOOKEEPER-1. Initial ZooKeeper code contribution from Yahoo! (phunt)
