> First one is about the synchronized block in AbstractPrincipalAttributesRepository.retrievePersonAttributesFromAttributeRepository. In our performance test, we got dozen of threads waiting for this lock. Do you know why is what added ?
This is very old code that probably can be taken out now. If you run
enough tests to show/prove that removing this does not cause any
adverse effects, we can certainly remove this with a PR.
> However the rootCauseException is set if the code fails in DelegatedClientAuthenticationAction.populateContextWithClientCredential but not in DelegatedClientAuthenticationAction.finalizeDelegatedClientAuthentication as DefaultAuthenticationManager catch the exception and convert it into a failure Event.
I'd have to see the proposed changeset in the PR, but generally
speaking losing a cause is a bug.