protected Statement statement(Statement base, Description description) {
    return new Statement() {
      @Override
      public void evaluate() throws Throwable {
        List<Throwable> errors = new ArrayList<>();

        methodName.set(description.getMethodName());
        before();
        try {
          base.evaluate();
        } catch (Throwable e) {
          errors.add(e);
          passed.set(false);
        } finally {
          after();
        }

        MultipleFailureException.assertEmpty(errors);
      }
    };
  }
Specifies conditions under which {@code copyTo} is performed. Default is {@code FAIL}.

@param when the conditions under which {@code copyTo} is performed
@return a reference to this SerializableTemporaryFolder
geode-junit/src/main/java/org/apache/geode/test/junit/rules/serializable/SerializableTemporaryFolder.java