Seems like inconsistent use of volatile.  These fields are used in createWriter, which maybe called from multiple threads, though i suspect we would not be changing via JMX these values, but maybe in the future.  Changing all fields accessed in createWriter to volatile is probably a conservative approach.