I think it would make sense to use `ImmutableMap` for these "caches" and fill them with a `ImmutableMap.Builder` in `onEvent`; also see [ImmutableCollectionsExplained](https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained)

Jersey 2.x repackages Google Guava and the immutable collections can be used here. The class in question is available as `jersey.repackaged.com.google.common.collect.ImmutableMap`.