So, with the recent threads we've participated in, I've decided to announce a decision of mine.
Any class that I have added test cases that have gotten to 100% coverage, I have decided to take ownership of. Any change that is done to such a class *must* have a test case that keeps the coverage at 100%. This doesn't mean that the code will automatically work perfectly all the time. But if something *is* added that makes the coverage fall below 100%, it means the class is *not* fully tested, and that is a big problem. The classes that fall into this category are: org.ofbiz.base.concurrent.TTLCachedObject org.ofbiz.base.json.JSONWriter org.ofbiz.base.lang.ComparableRange org.ofbiz.base.util.IndentingWriter org.ofbiz.base.util.TimeDuration org.ofbiz.base.util.collections.FlexibleMapAccessort org.ofbiz.base.util.string.FlexibleStringExpander The above also have 100% coverage in their tests. The following classes are not fully covered, because of either difficulty in throwing exceptions at the right place, or non-blocking algorithms that are hard to write correct multi-threadeds tests for. The numbers stand for line coverage/branch coverage. org.ofbiz.base.concurrent.TTLObject(91%/94%) org.ofbiz.base.conversion.Converters(89%/86%) org.ofbiz.base.util.UtilObject(93%/100%) org.ofbiz.base.util.ObjectType.simpleTypeConvert has full line coverage. The only thing not covered is a single branch, the one at the end of the method that calls Debug.infoOn(). These additional 3 classes and method I am also going to take ownership of. While Converters has good coverage, the actual converter implementations do not. This is something I will be fixing in the coming days.
