The javadoc for org.ofbiz.base.util.TimeDuration says it is immutable; however, it's fields are not final, and lots of methods modify it's fields.
Was there any research into other duration implementations? I see one at javax.xml.datatype.Duration, that seems mostly compatible, except that it doesn't have millisecond resolution.
