The field 'properties' on class EscherProperties is initialised lazily but there is nothing stopping a second thread reading the map while it is still being populated. To be absolutely correct, some sort of synchronization is necessary. Since this map initialisation is relatively simple and light-weight, there should be no problem with performing it in the class static initialiser.
Fixed in svn r787771 No junit added :( It's hard to write a deterministic tests that expose concurrency bugs. Hopefully the problem in the old version of the code is clear enough that the fix makes sense by itself.