--- old/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSpeculationLog.java 2016-06-21 23:03:53.000000000 +0200 +++ new/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSpeculationLog.java 2016-06-21 23:03:53.000000000 +0200 @@ -35,7 +35,7 @@ /** Written by the C++ code that performs deoptimization. */ private volatile Object lastFailed; - /** All speculations that have been a deoptimization reason. */ + /** All speculations that have caused a deoptimization. */ private Set failedSpeculations; /** Strong references to all reasons embedded in the current nmethod. */ @@ -54,7 +54,7 @@ } @Override - public boolean maySpeculate(SpeculationReason reason) { + public synchronized boolean maySpeculate(SpeculationReason reason) { if (failedSpeculations != null && failedSpeculations.contains(reason)) { return false; }