public class LamdaMethodBug { static void foo(){ List list = Collections.emptyList(); //implicit final String toFind = "bar"; //explicit final final int expectedIndex = 3; //other implicit final AtomicInteger missed = new AtomicInteger(); list.forEach(item->{ synchronized(missed){ if (item.indexOf(toFind) != expectedIndex){ missed.incrementAndGet(); } } }); if (missed.get() > 0){ throw new AssertionError(); } } }