Well ok, it doesn't actually do any conversion. The converter uses a map to reuse instances. This map is by default a synchronized WeakHashMap .