Release 3.4.7 - 2015-11-08

Backward compatible changes:

BUGFIXES:

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

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

  ZOOKEEPER-1901. [JDK8] Sort children for comparison in AsyncOps tests
  (Andrew Purtell 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-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-1926. Unit tests should only use build/test/data for data (Enis
  Soztutar via michim)

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

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

  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-1222. getACL should only call DataTree.copyStat when passed in
  stat is not null (Michi Mutsuzaki via rakeshr)

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

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

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

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

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

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

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

  ZOOKEEPER-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-2056 Zookeeper 3.4.x and 3.5.0-alpha is not OSGi compliant
  (Deiwin Sarjas via rgs)

  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-1077: C client lib doesn't build on Solaris (Chris Nauroth via rgs)

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

  ZOOKEEPER-2179: Typo in Watcher.java (Archana T 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-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-602: log all exceptions not caught by ZK threads
  (Rakesh R via rgs)

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

  ZOOKEEPER-2235: License update (fpj via michim)

  ZOOKEEPER-2239: JMX State from LocalPeerBean incorrect
  (Kevin Lee 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-2033: zookeeper follower fails to start after
  a restart immediately following a new epoch (Asad Saeed via fpj)

  ZOOKEEPER-2256: Zookeeper is not using specified JMX port in zkEnv.sh
  (Arshad Mohammad via rakeshr)
 
  ZOOKEEPER-1506: Re-try DNS hostname -> IP resolution if node connection
  fails (Robert Thille via fpj)

  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-2268: Zookeeper doc creation fails on windows
  (Arshad Mohammad via cnauroth)

  ZOOKEEPER-2296: compilation broken for 3.4
  (Raul Gutierrez Segales via cnauroth)

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

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

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

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

IMPROVEMENTS:

  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-1746. AsyncCallback.*Callback don't have any Javadoc
  (Hongchao Deng via phunt)

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

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

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

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

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

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

  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-2245: SimpleSysTest test cases fails (Arshad Mohammad via rakeshr)

  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)

NEW FEATURES:

  ZOOKEEPER-2237 Port async multi to 3.4 branch (Ivan Kelly via rakeshr)

Release 3.4.6 - 2014-03-10 

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1900. NullPointerException in truncate (Camille Fournier)

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

  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-753. log4j dependency in the pom needs to have exclusion
  lists (Sean Busbey 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-1535. ZK Shell/Cli re-executes last command on exit 
  (Edward Ribeiro via camille)

  ZOOKEEPER-1495. ZK client hangs when using a function not available
  on the server. (Skye W-M 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-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-1633. Introduce a protocol version to connection initiation
  message (Alexander Shraer via michim)

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

  ZOOKEEPER-1706. Typo in Double Barriers example (Jingguo Yao 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-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-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-1731. Unsynchronized access to ServerCnxnFactory.connectionBeans results in 
  deadlock. (Dave Latham 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-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-1750. Race condition producing NPE in NIOServerCnxn.toString
  (Rakesh R via michim)

  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-1603. StaticHostProviderTest testUpdateClientMigrateOrNot hangs (fpj)

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

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

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

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

  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-1646. mt c client tests fail on Ubuntu Raring (phunt)

  ZOOKEEPER-1558. Leader should not snapshot uncommitted state (fpj)

  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-1798. Fix race condition in testNormalObserverRun
  (thawan, fpj via thawan)

  ZOOKEEPER-1808. Add version to FLE notifications for 3.4 branch (fpj)
  
  ZOOKEEPER-1812. ZooInspector reconnection always fails if first
  connection fails (Benjamin Jaton via phunt)

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

  ZOOKEEPER-1817. Fix don't care for b3.4 (fpj)

  ZOOKEEPER-1653. zookeeper fails to start because of inconsistent
  epoch (michim via fpj)

  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-1837. Fix JMXEnv checks (potential race conditions)
  (Germán Blanco via fpj)

  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-1841. problem in QuorumTest (Germán via fpj)

  ZOOKEEPER-1733 FLETest#testLE is flaky oo.l windows boxes 
  (michim, Jeffrey Zhong via fpj)

  ZOOKEEPER-1849. Need to properly tear down tests in various
  cases (Germán 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-1238. when the linger time was changed for NIO the patch missed
  Netty (Skye Wanderman-Milne via fpj)

  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-1872. QuorumPeer is not shutdown in few cases
  (Rakesh R via 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-1873. Unnecessarily InstanceNotFoundException is coming when
  unregister failed jmxbeans (Rakesh R via michim)

  ZOOKEEPER-1844. TruncateTest fails on windows (Rakesh R via fpj)
  
  ZOOKEEPER-1755. Concurrent operations of four letter 'dump' ephemeral 
  command and killSession causing NPE (Rakesh R via camille)

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

IMPROVEMENTS:

  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-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-1324. Remove Duplicate NEWLEADER packets from the
  Leader to the Follower. (thawan, fpj via fpj)

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

  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-1627. Add org.apache.zookeeper.common to exported packages
  in OSGi MANIFEST (Arnoud Glimmerveen 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-1715. Upgrade netty version (Sean Bridges via michim)

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

Release 3.4.5 - 2012-09-30

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1376. zkServer.sh does not correctly check for
  $SERVER_JVMFLAGS (Skye W-M via henryr)

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


Release 3.4.4 - 2012-09-17 

Backward compatible changes:

BUGFIXES:

  ZOOKEEPER-1466. QuorumCnxManager.shutdown missing synchronization.
  (Patrick Hunt 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-1354. AuthTest.testBadAuthThenSendOtherCommands fails
  intermittently (phunt 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-1256. ClientPortBindTest is failing on Mac OS X
  (Daniel Gómez Ferro via phunt)

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

  ZOOKEEPER-1395. node-watcher double-free redux (Mike Lundy via henryr)
  
  ZOOKEEPER-1450. Backport of ZOOKEEPER-1294 fix to 3.4 and 3.3 (Norman Bishop via camille)

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

  ZOOKEEPER-1339. C client doesn't build with --enable-debug (Eric Liang 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-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-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-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-1380. zkperl: _zk_release_watch doesn't remove items properly from
  the watch list. (Botond Hejj via mahadev)

  ZOOKEEPER-1501. Nagios plugin always returns OK when it cannot connect to
  zookeeper. (Brian Sutherland 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)

IMPROVEMENTS:

  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-1377. add support for dumping a snapshot file content (similar to LogFormatter). (phunt via camille)

  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-1437. Client uses session before SASL authentication complete.
  (Eugene Koontz via mahadev)

  ZOOKEEPER-1361. Leader.lead iterates over 'learners' set without proper
  synchronisation. (Henry Robinson via mahadev)

Release 3.4.3 - 2012-02-06

Backward compatible changes:

BUGFIXES: 

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

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

  ZOOKEEPER-1343. getEpochToPropose should check if lastAcceptedEpoch is greater or equal than epoch (fpj via breed)
  
  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.
  (Bejamin 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-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.
  (phunt and camille via mahadev)

  ZOOKEEPER-1338. class cast exceptions may be thrown by multi 
  ErrorResult class (invalid equals) (phunt via mahadev)

IMPROVEMENTS:
 
  ZOOKEEPER-1322. Cleanup/fix logging in Quorum code. (phunt via mahadev)
 
  ZOOKEEPER-1327. there are still remnants of hadoop urls.
  (Harsh J via mahadev)


Release 3.4.2 - 2011-12-21

Backward compatible changes:

BUGFIXES: 

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

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

Release 3.4.1 - 2011-12-12

Backward compatible changes:

BUGFIXES: 

  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-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.
  (Patrick Hunt and Ben Reed via mahadev)

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

Release 3.4.0 - 2011-10-25

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-1174. FD leak when network unreachable (Ted Dunning via camille)

  ZOOKEEPER-1203. Zookeeper systest is missing Junit Classes
  (Prashant Gokhale via phunt)

  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-1181. Fix problems with Kerberos TGT renewal.
  (Eugene Koontz via mahadev)
  
  ZOOKEEPER-1264. FollowerResyncConcurrencyTest failing intermittently. (phunt via camille)

  ZOOKEEPER-1268. problems with read only mode, intermittent test failures 
  and ERRORs in the log. (phunt via mahadev)
  
  ZOOKEEPER-1246. Dead code in PrepRequestProcessor catch Exception block. (camille)

  ZOOKEEPER-1271. testEarlyLeaderAbandonment failing on solaris -
  clients not retrying connection (mahadev via phunt)

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

  ZOOKEEPER-1270. testEarlyLeaderAbandonment failing intermittently, 
  quorum formed, no serving. (Flavio, Camille and Alexander Shraer via mahadev)
  
  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-1299. Add winconfig.h file to ignore in release audit. (mahadev)

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) 
  
  ZOOKEEPER-1321. Add number of client connections metric in JMX and srvr. (Neha Narkhede via camille)

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)

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)
