@Override
    String applicable(Method[] getters) {
      for (int i = 0; i < getters.length; i++) {
        try {
          getterConverters[i].checkReconstructible();
        } catch (InvalidObjectException e) {
          possibleCause = e;
          return "method " + getters[i].getName() + " returns type "
              + "that cannot be mapped back from OpenData";
        }
      }
      return "";
    }
This builder never actually returns success. It simply serves to check whether the other
builders in the same group have any chance of success. If any getter in the targetClass returns
a type that we don't know how to reconstruct, then we will not be able to make a builder, and
there is no point in repeating the error about the problematic getter as many times as there
are candidate builders. Instead, the "applicable" method will return an explanatory string, and
the other builders will be skipped. If all the getters are OK, then the "applicable" method
will return an empty string and the other builders will be tried.
geode-core/src/main/java/org/apache/geode/management/internal/OpenTypeConverter.java