I recently uncovered a couple of race conditions and a deadlock that were possible with theEntryQueue/WriterLogListener classes. Thisresulted in a overhaul of the test code (added about 50 new testcases) and quite a bit of refactoring to eliminate the errors.
As a side effect of exposing code to the testcases, it is now much easier to correctly
implement a new Queueing listener (look at QueueingLogListener). Existing code should not be broken, but there is a performance impact as WriterLogListener is now synchronous. To get (better than) the old behavior, initialize a QueueingLogListener with a WriterLogListener.
This is the second test release in preparation
for 1.0. This release contains mostly minor fixes. There will be at least one more test release before 1.0.
New classes, com.qlue.util.assert.InvariantsTracker and InvariantsChecker have been added to support safe recursive invariants checking. At the same time, the test suite has been overhauled to take advantage of this feature, to take advantage of test case inheritance, and to improve coverage.
Lastly, we have a new package, com.qlue.util.test for unit testing support and its first utility, LoggerTestCase, an abstract junit TestCase which collects and organizes log messages from unit tests.... read more