On 22/05/2019 01:02, Valerie Peng wrote:

Well, I initially tried to use the computeIfAbsent, and I really like how the resulting code looks. But then as I checked the javadoc of the computeIfAbsent method, it seems that the provider verification code does not meet the criteria of short, simple requirement of the mapping func. In addition, the verification of 3rd party provider may trigger the verification of other providers which means updating the other mappings of the same map which the javadoc says the mapping func *must not* do. I don't know the internals of ConcurrentHashMap, would this possibly lead to a deadlock? So, I just followed the existing model of sync'ing on JceSecurity class. I didn't proceed with performance measuring of computeIfAbsent given the above reason.
Fair enough, if it does indeed take a lot of time to compute then what you have is okay.

-Alan

Reply via email to