Return-Path: Delivered-To: apmail-hadoop-zookeeper-commits-archive@minotaur.apache.org Received: (qmail 81474 invoked from network); 20 May 2009 18:48:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 20 May 2009 18:48:11 -0000 Received: (qmail 6728 invoked by uid 500); 20 May 2009 18:48:25 -0000 Delivered-To: apmail-hadoop-zookeeper-commits-archive@hadoop.apache.org Received: (qmail 6705 invoked by uid 500); 20 May 2009 18:48:24 -0000 Mailing-List: contact zookeeper-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: zookeeper-dev@ Delivered-To: mailing list zookeeper-commits@hadoop.apache.org Received: (qmail 6695 invoked by uid 99); 20 May 2009 18:48:24 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 May 2009 18:48:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 May 2009 18:48:22 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2FF4F2388897; Wed, 20 May 2009 18:48:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r776806 - in /hadoop/zookeeper/trunk: ./ src/java/main/org/apache/zookeeper/ src/java/main/org/apache/zookeeper/server/ src/java/main/org/apache/zookeeper/server/quorum/ src/java/test/config/ Date: Wed, 20 May 2009 18:48:01 -0000 To: zookeeper-commits@hadoop.apache.org From: breed@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090520184802.2FF4F2388897@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: breed Date: Wed May 20 18:48:00 2009 New Revision: 776806 URL: http://svn.apache.org/viewvc?rev=776806&view=rev Log: ZOOKEEPER-410. address all findbugs warnings in client/server classes. Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SessionTrackerImpl.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/ProposalRequestProcessor.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java hadoop/zookeeper/trunk/src/java/test/config/findbugsExcludeFile.xml Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Wed May 20 18:48:00 2009 @@ -76,6 +76,8 @@ ZOOKEEPER-405. nullpointer exception in zookeeper java shell. (mahadev via breed) + ZOOKEEPER-410. address all findbugs warnings in client/server classes. (phunt via breed) + IMPROVEMENTS: ZOOKEEPER-308. improve the atomic broadcast performance 3x. (breed via mahadev) Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ClientCnxn.java Wed May 20 18:48:00 2009 @@ -240,6 +240,20 @@ } + /** + * Creates a connection object. The actual network connect doesn't get + * established until needed. The start() instance method must be called + * subsequent to construction. + * + * @param hosts + * a comma separated list of hosts that can be connected to. + * @param sessionTimeout + * the timeout for connections. + * @param zooKeeper + * the zookeeper object that this connection is related to. + * @param watcher watcher for this connection + * @throws IOException + */ public ClientCnxn(String hosts, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher) throws IOException @@ -249,7 +263,8 @@ /** * Creates a connection object. The actual network connect doesn't get - * established until needed. + * established until needed. The start() instance method must be called + * subsequent to construction. * * @param hosts * a comma separated list of hosts that can be connected to. @@ -257,12 +272,15 @@ * the timeout for connections. * @param zooKeeper * the zookeeper object that this connection is related to. - * @throws KeeperException + * @param watcher watcher for this connection + * @param sessionId session id if re-establishing session + * @param sessionPasswd session passwd if re-establishing session * @throws IOException */ public ClientCnxn(String hosts, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, long sessionId, byte[] sessionPasswd) - throws IOException { + throws IOException + { this.zooKeeper = zooKeeper; this.watcher = watcher; this.sessionId = sessionId; @@ -286,10 +304,13 @@ Collections.shuffle(serverAddrs); sendThread = new SendThread(); eventThread = new EventThread(); + } + + public void start() { sendThread.start(); eventThread.start(); } - + Object eventOfDeath = new Object(); final static UncaughtExceptionHandler uncaughtExceptionHandler = new UncaughtExceptionHandler() { @@ -298,7 +319,7 @@ } }; - private class WatcherSetEventPair { + private static class WatcherSetEventPair { private final Set watchers; private final WatchedEvent event; Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java Wed May 20 18:48:00 2009 @@ -344,6 +344,7 @@ watchManager.defaultWatcher = watcher; cnxn = new ClientCnxn(host, sessionTimeout, this, watchManager); + cnxn.start(); } /** @@ -388,6 +389,7 @@ watchManager.defaultWatcher = watcher; cnxn = new ClientCnxn(host, sessionTimeout, this, watchManager, sessionId, sessionPasswd); + cnxn.start(); } /** Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/ZooKeeperMain.java Wed May 20 18:48:00 2009 @@ -447,6 +447,7 @@ try { children = zk.getChildren(quotaPath, false); } catch(KeeperException.NoNodeException ne) { + LOG.debug("child removed during quota check", ne); return; } if (children.size() == 0) { Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java Wed May 20 18:48:00 2009 @@ -22,9 +22,8 @@ import java.nio.ByteBuffer; import java.util.List; -import org.apache.log4j.Logger; - import org.apache.jute.Record; +import org.apache.log4j.Logger; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.KeeperException.Code; @@ -48,6 +47,7 @@ import org.apache.zookeeper.proto.SyncResponse; import org.apache.zookeeper.server.DataTree.ProcessTxnResult; import org.apache.zookeeper.server.NIOServerCnxn.Factory; +import org.apache.zookeeper.server.ZooKeeperServer.ChangeRecord; import org.apache.zookeeper.txn.CreateSessionTxn; import org.apache.zookeeper.txn.ErrorTxn; @@ -83,12 +83,12 @@ synchronized (zks.outstandingChanges) { while (!zks.outstandingChanges.isEmpty() && zks.outstandingChanges.get(0).zxid <= request.zxid) { - if (zks.outstandingChanges.get(0).zxid < request.zxid) { + ChangeRecord cr = zks.outstandingChanges.remove(0); + if (cr.zxid < request.zxid) { LOG.warn("Zxid outstanding " - + zks.outstandingChanges.get(0).zxid + + cr.zxid + " is less than current " + request.zxid); } - ZooKeeperServer.ChangeRecord cr = zks.outstandingChanges.remove(0); if (zks.outstandingChangesForPath.get(cr.path) == cr) { zks.outstandingChangesForPath.remove(cr.path); } Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java Wed May 20 18:48:00 2009 @@ -87,6 +87,10 @@ int outstandingLimit = 1; + /** Create the factory, startup(zks) must be called subsequently. + * @param port listener port + * @throws IOException + */ public Factory(int port) throws IOException { super("NIOServerCxn.Factory:" + port); setDaemon(true); @@ -95,11 +99,20 @@ ss.socket().bind(new InetSocketAddress(port)); ss.configureBlocking(false); ss.register(selector, SelectionKey.OP_ACCEPT); - start(); } - public void startup(ZooKeeperServer zks) throws IOException, - InterruptedException { + @Override + public void start() { + // ensure thread is started once and only once + if (getState() == Thread.State.NEW) { + super.start(); + } + } + + public void startup(ZooKeeperServer zks) + throws IOException, InterruptedException + { + start(); zks.startup(); setZooKeeperServer(zks); } @@ -482,15 +495,17 @@ } if (h.getXid() >= 0) { synchronized (this) { - outstandingRequests++; - // check throttling - if (zk.getInProcess() > factory.outstandingLimit) { - LOG.debug("Throttling recv " + zk.getInProcess()); - disableRecv(); - // following lines should not be needed since we are already - // reading - // } else { - // enableRecv(); + synchronized (this.factory) { + outstandingRequests++; + // check throttling + if (zk.getInProcess() > factory.outstandingLimit) { + LOG.debug("Throttling recv " + zk.getInProcess()); + disableRecv(); + // following lines should not be needed since we are + // already reading + // } else { + // enableRecv(); + } } } } @@ -934,7 +949,11 @@ * The number of requests that have been submitted but not yet responded to. */ public long getOutstandingRequests() { - return outstandingRequests; + synchronized (NIOServerCnxn.this) { + synchronized (NIOServerCnxn.this.factory) { + return outstandingRequests; + } + } } public long getPacketsReceived() { Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/PrepRequestProcessor.java Wed May 20 18:48:00 2009 @@ -86,8 +86,6 @@ super("ProcessThread:" + zks.getClientPort()); this.nextProcessor = nextProcessor; this.zks = zks; - - start(); } @Override Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SessionTrackerImpl.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SessionTrackerImpl.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SessionTrackerImpl.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SessionTrackerImpl.java Wed May 20 18:48:00 2009 @@ -23,10 +23,10 @@ import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import org.apache.log4j.Logger; - import org.apache.zookeeper.KeeperException; /** @@ -68,8 +68,6 @@ } static class SessionSet { - long expireTime; - HashSet sessions = new HashSet(); } @@ -81,7 +79,9 @@ } public SessionTrackerImpl(SessionExpirer expirer, - ConcurrentHashMap sessionsWithTimeout, int tickTime, long sid) { + ConcurrentHashMap sessionsWithTimeout, int tickTime, + long sid) + { super("SessionTracker"); this.expirer = expirer; this.expirationInterval = tickTime; @@ -89,10 +89,9 @@ nextExpirationTime = roundToInterval(System.currentTimeMillis()); this.serverId = sid; this.nextSessionId = initializeNextSession(sid); - for (long id : sessionsWithTimeout.keySet()) { - addSession(id, sessionsWithTimeout.get(id)); + for (Entry e : sessionsWithTimeout.entrySet()) { + addSession(e.getKey(), e.getValue()); } - start(); } volatile boolean running = true; @@ -164,7 +163,6 @@ set = sessionSets.get(s.tickTime); if (set == null) { set = new SessionSet(); - set.expireTime = expireTime; sessionSets.put(expireTime, set); } set.sessions.add(s); Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/SyncRequestProcessor.java Wed May 20 18:48:00 2009 @@ -60,7 +60,6 @@ super("SyncThread:" + zks.getServerId()); this.zks = zks; this.nextProcessor = nextProcessor; - start(); } @Override Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServer.java Wed May 20 18:48:00 2009 @@ -200,8 +200,7 @@ }; sessionsWithTimeouts = new ConcurrentHashMap(); dataTree = treeBuilder.build(); - long zxid = txnLogFactory.restore(dataTree,sessionsWithTimeouts,listener); - this.hzxid = zxid; + setZxid(txnLogFactory.restore(dataTree,sessionsWithTimeouts,listener)); // Clean up dead sessions LinkedList deadSessions = new LinkedList(); for (long session : dataTree.getSessions()) { @@ -283,7 +282,7 @@ /** * This should be called from a synchronized block on this! */ - public long getZxid() { + synchronized public long getZxid() { return hzxid; } @@ -291,6 +290,10 @@ return ++hzxid; } + synchronized public void setZxid(long zxid) { + hzxid = zxid; + } + long getTime() { return System.currentTimeMillis(); } @@ -371,12 +374,15 @@ RequestProcessor finalProcessor = new FinalRequestProcessor(this); RequestProcessor syncProcessor = new SyncRequestProcessor(this, finalProcessor); + ((SyncRequestProcessor)syncProcessor).start(); firstProcessor = new PrepRequestProcessor(this, syncProcessor); + ((PrepRequestProcessor)firstProcessor).start(); } protected void createSessionTracker() { sessionTracker = new SessionTrackerImpl(this, sessionsWithTimeouts, tickTime, 1); + ((SessionTrackerImpl)sessionTracker).start(); } public boolean isRunning() { Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ZooKeeperServerMain.java Wed May 20 18:48:00 2009 @@ -94,9 +94,8 @@ File(config.dataLogDir), new File(config.dataDir)); zkServer.setTxnLogFactory(ftxn); zkServer.setTickTime(config.tickTime); - zkServer.startup(); cnxnFactory = new NIOServerCnxn.Factory(config.clientPort); - cnxnFactory.setZooKeeperServer(zkServer); + cnxnFactory.startup(zkServer); cnxnFactory.join(); if (zkServer.isRunning()) { zkServer.shutdown(); Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/FollowerZooKeeperServer.java Wed May 20 18:48:00 2009 @@ -87,6 +87,7 @@ firstProcessor = new FollowerRequestProcessor(this, commitProcessor); syncProcessor = new SyncRequestProcessor(this, new SendAckRequestProcessor(getFollower())); + syncProcessor.start(); } @Override Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderZooKeeperServer.java Wed May 20 18:48:00 2009 @@ -66,6 +66,7 @@ RequestProcessor proposalProcessor = new ProposalRequestProcessor(this, commitProcessor); firstProcessor = new PrepRequestProcessor(this, proposalProcessor); + ((PrepRequestProcessor)firstProcessor).start(); } @Override @@ -77,6 +78,7 @@ protected void createSessionTracker() { sessionTracker = new SessionTrackerImpl(this, sessionsWithTimeouts, tickTime, self.getId()); + ((SessionTrackerImpl)sessionTracker).start(); } @@ -84,10 +86,6 @@ return sessionTracker.touchSession(sess, to); } - public void setZxid(long zxid) { - hzxid = zxid; - } - @Override protected void registerJMX() { // register with JMX Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/ProposalRequestProcessor.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/ProposalRequestProcessor.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/ProposalRequestProcessor.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/ProposalRequestProcessor.java Wed May 20 18:48:00 2009 @@ -39,6 +39,7 @@ this.nextProcessor = nextProcessor; AckRequestProcessor ackProcessor = new AckRequestProcessor(zks.getLeader()); syncProcessor = new SyncRequestProcessor(zks, ackProcessor); + syncProcessor.start(); } public void processRequest(Request request) { Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java Wed May 20 18:48:00 2009 @@ -306,6 +306,7 @@ @Override public synchronized void start() { + cnxnFactory.start(); startLeaderElection(); super.start(); } Modified: hadoop/zookeeper/trunk/src/java/test/config/findbugsExcludeFile.xml URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/test/config/findbugsExcludeFile.xml?rev=776806&r1=776805&r2=776806&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/test/config/findbugsExcludeFile.xml (original) +++ hadoop/zookeeper/trunk/src/java/test/config/findbugsExcludeFile.xml Wed May 20 18:48:00 2009 @@ -1,5 +1,40 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +