Construction of Scala providers was already properly synchronized jvm and machine-wide. The cache on top of construction was not. This could cause the same Scala version to be loaded in multiple class loaders.