--- old/src/share/classes/java/lang/invoke/MethodTypeForm.java 2014-05-28 11:09:44.391392587 +0200 +++ new/src/share/classes/java/lang/invoke/MethodTypeForm.java 2014-05-28 11:09:44.215392595 +0200 @@ -91,8 +91,10 @@ return lambdaForms[which]; } - public LambdaForm setCachedLambdaForm(int which, LambdaForm form) { - // Should we perform some sort of CAS, to avoid racy duplication? + synchronized public LambdaForm setCachedLambdaForm(int which, LambdaForm form) { + // Simulate a CAS, to avoid racy duplication of results. + LambdaForm prev = lambdaForms[which]; + if (prev != null) return prev; return lambdaForms[which] = form; }