David Lao You are right, ServerCnxnFactory is not closing the transaction log. Sorry for the confusion. I had commented by looking at your patch, its trying to fix the transaction log separately in ZooKeeperServer. This is not required as ZKDatabase is holding the reference to txnLogFactory and zkDatabase will close transaction log also.
To your second point I agree the log closing is better done outside the server in runFromConfig. I've verified the patch works on by Windows box.
Thanks David Lao for the testing effort.
Both patches, from Rakesh R and David Lao, hang on org.apache.zookeeper.server.ZxidRolloverTest for me.
Flavio Junqueira, Thanks again for the reviews. In the latest patch I tried to fix the problem in ZooKeeperServerMain.java class. One thing I'm not able to understand is, why this fix is affecting ZxidRolloverTest testcases. Because am not seeing any relation ship between ZxidRolloverTest and transaction log closure in ZooKeeperServerMain. I hope you are looking at the latest patch which I attached on "Last Friday 17:244"
For understanding the problem, it would be good if you can share logs, threaddumps etc. Is this consistently failiing and which test case in ZxidRolloverTest ?