Ulf and Mark,
If I understand correctly, what you guys are saying, even if a static initialization block is complete there may be other threads trying to access the map
My understanding is that the code in the static block would be executed at class load time and hence would have been completed (assuming there are no exceptions) when the webapp is loaded in the container and before any report requests have been received.
Hence, there may not be any need to protect access to the static block using the Lock...
Do let me know if I am missing something.
However, the suggestion of using the listener with a web-app seems to be a better approach as compared to using static block