Recommit for issue 740. A debug logging helper method (EntryContainer#debugAccess) did not check for null OperationStatus objects being passed in and caused an NullPointerException whenever EntryCount was called. Added a null check.
Changed ID2Entry#getRecordCount to use the Database#count method in JE 3.1.0. The JE backend no longer keeps a count of entries in entry ID 0. Modified TestVerifyJob unit test to no longer simulate a incorrect entry count.
It was a clear case that using Database#count is much faster then keeping a count at entryID 0. At the least, it can eliminate a database read and write on every entry add and delete operation. In addition, calling Database#count is faster then getting an entry out of the database as the following shows.
Time took to get entry count 100 times (w/o transactions):
Duration using Database#count: 16731000 ns
Duration using old entry counter: 22094000 ns
Duration using Database#count: 17124000 ns
Duration using old entry counter: 39434000 ns
Duration using Database#count: 15522000 ns
Duration using old entry counter: 20069000 ns
Duration using Database#count: 15873000 ns
Duration using old entry counter: 19732000 ns
Duration using Database#count: 15871000 ns
Duration using old entry counter: 20594000 ns
Duration using Database#count: 21099000 ns
Duration using old entry counter: 21877000 ns
Fix for issue 740