ZK-1931/javazab — pull request #141 by EasonLiao (2014-09-15 17:37:40+00:00)
Title: Fix the bug in AckProcessor.

This is the bug we found while we were preparing the demo for my final talk.

If there's a pending configuration in AckProcessor, it will first find the zxid can be committed in pending configuration. If the pending configuration can't be committed, it will find the zxid can be committed in current configuration. It's possible that the zxid can be committed for current configuration is larger than the zxid of COP. In this case, we will only commit the transaction before COP like :
``` zxidCanCommit = new Zxid(copVersion.getEpoch(), copVersion.getXid() - 1)```

However, it's possible that the COP is the first transaction in a new epoch, let's say it has ``` Zxid <1, 0> ```, then ``` zxidCanCommit = <1, -1> ```, which is incorrect.