Trunk

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-2058 rat: exclude *.cer files  (michim 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-2064 Prevent resource leak in various classes (Ted Yu via fpj)
  
  ZOOKEEPER-2060 Trace bug in NettyServerCnxnFactory (Ian 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-2182 Several test suites are not running during pre-commit, because their names do not end with "Test". (Chris Nauroth via hdeng)

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

  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)

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

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

  ZOOKEEPER-1927: zkServer.sh fails to read dataDir (and others)
  from zoo.cfg on Solaris 10 (grep issue, manifests as FAILED TO WRITE PID)
  (Chris Nauroth via rgs)

  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-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-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-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-2141 ACL cache in DataTree never removes entries (Adam Milne-Smith via camille)

  ZOOKEEPER-2364: "ant docs" fails on branch-3.5 due to missing releasenotes.xml.
  (phunt via cnauroth)

  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)

IMPROVEMENTS:
  ZOOKEEPER-2024 Major throughput improvement with mixed workloads (Kfir Lev-Ari via shralex)

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

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

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

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

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

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

  ZOOKEEPER-2054 test-patch.sh: don't set ulimit -n (michim via rakeshr)
  
  ZOOKEEPER-2066 Updates to README.txt. (Wendy Smoak via camille)

  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-2171 avoid reverse lookups in QuorumCnxManager (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)

  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-2335: Java Compilation Error in ClientCnxn.java
  (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)

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)

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)
