public @Nullable ValueAttribute getJacksonValue() {
    if (!jacksonValueInitialized) {
      jacksonValueInitialized = true;
      if (!isGenerateJacksonMapped()) {
        return jacksonValue;
      }
      for (ValueAttribute v : getSettableAttributes()) {
        if (v.jacksonValue) {
          if (jacksonValue == null) {
            if (!v.thereAreNoOtherMandatoryAttributes()) {
              v.report()
                  .error("Cannot generate proper @JsonCreator for @JsonValue,"
                      + " other mandatory attributes are present");
              return null;
            }
            jacksonValue = v;
          } else {
            v.report()
                .warning(About.INCOMPAT,
                    "Multiple attributes annotated with @JsonValue on the same type."
                        + " There should be only one to consider for mapping.");
          }
        }
      }
    }
    return jacksonValue;
  }
Means object hashcode is cached at some point. Either lazily (on first access)
or eagerly (during construction).
@see #isUseLazyhash()
@see #isUsePrehashed()
value-processor/src/org/immutables/value/processor/meta/ValueType.java