public static @Nullable String readString(
    @NotNull IonReader reader,
    @Nullable String fieldName,
    @NotNull ConcurrentMap<String, String> stringCache
  ) {
    String str = readString(reader, fieldName);
    if (str == null) {
      return null;
    }
    String old = stringCache.putIfAbsent(str, str);
    if (old != null) {
      return old;
    }
    return str;
  }
public static @Nullable String readString(
    @NotNull IonReader reader,
    @Nullable String fieldName,
    @NotNull ConcurrentMap<String, String> stringCache
  )