DecimalFormat likes to copy data into itself when formatting because it is poorly designed, as such it cannot be used by multiple threads at once.