IdResolver is not thread-safe. It uses an unsynchronized WeakHashMap to store id/element mappings. Multiple threads running in parallel that use this class to register and retrieve id mappings can end up exhibiting erratic behavior.