this bug still exists since early alphas, as seen in
customConverters is not synchronized, making the converter lookup class itself not threadsafe since this is used concurrently in two methods:
This flows on to BasicComponentConfigurator, which calls in sequence:
converterLookup.registerConverter( new ClassRealmConverter( containerRealm ) );
converter.processConfiguration( converterLookup, component, containerRealm.getClassLoader(), configuration,
expressionEvaluator, listener );
so the configureComponent method itself cannot be called concurrently. However, BasicComponentConfigurator is a singleton.
synchronizing the custom converters would help but I don't think that's correct.
the problem is more in the BasicComponentConfigurator that registers a converter permanently for a classrealm that was only passed in to that method. It should instead pass the custom converters into the lookup method and remove the permanent one - or the lookup should be instantiated each time.