diff -r 1c999569643b -r acf2c31e22d4 samples/reentrant/src/org/apidesign/reentrant/CriticalSectionReentrantImmutable.java --- a/samples/reentrant/src/org/apidesign/reentrant/CriticalSectionReentrantImmutable.java Sat Jun 14 10:04:51 2008 +0200 +++ b/samples/reentrant/src/org/apidesign/reentrant/CriticalSectionReentrantImmutable.java Sat Jun 14 10:04:53 2008 +0200 @@ -13,7 +13,10 @@ // BEGIN: reentrant.merge.immutable public int sumBigger(Collection args) { for (;;) { - ImmutableData previous = this.data; + ImmutableData previous; + synchronized (this) { + previous = this.data; + } int[] ret = { 0 }; ImmutableData now = doCriticalSection(args, previous, ret);