@Override
    public void run() {

      // This thread will record updates for this single thread. The
      // update is the thread id * the update number
      for (int i = myNumber; i < updates; i += numUpdaters) {

        // Only apply the update if it is not an intended exception
        if (!exceptions.contains(i)) {
          synchronized (vh1) {
            vh1.recordVersion(i);
          }
          // Apply only half the updates to vh2. We will then mimic a GII
          if (i < updates / 2) {
            synchronized (vh2) {
              vh2.recordVersion(i);
            }
          }
          Thread.yield();
        }
      }

    }
This tries to be a more "real life" test. A bunch of threads perform updates, which should
create exceptions. Verify that the final exception list is correct.
geode-core/src/test/java/org/apache/geode/internal/cache/versions/RegionVersionHolderRandomJUnitTest.java