private Int2ObjectOpenHashMap readDataFile(InputStream is) {
    Int2ObjectOpenHashMap map = new Int2ObjectOpenHashMap();
    boolean complete = false;
    BufferedReader input = null;
    try {
      input = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
      String line = null;
      while ((line = input.readLine()) != null) {
        int equalSign = line.indexOf('=');
        String idAsString = line.substring(0, equalSign - 1).trim();
        // The +2 is because we need to skip the "= ", we dont use trim because some messages want
        // leading whitespace
        String message = line.substring(equalSign + 2).replaceAll("\\\\n", "\n");
        try {
          int id = Integer.parseInt(idAsString);
          map.put(id, message);
        } catch (NumberFormatException nfe) {
          // unit tests should prevent this from happening in a customer situation
          throw new InternalGemFireException(nfe);
        }
        complete = true;
      }
    } catch (IOException ioe) {
      // @TODO log this exception
    } finally {
      if (!complete) {
        // something went wrong, clean up and revert back to English
        try {
          if (input != null) {
            input.close();
          } else {
            is.close();
          }
        } catch (IOException ignore) {
        }
        // set map back to null so we default to English
        map = null;
      }
    }
    return map;
  }
Init method to populate the TIntObjectHashMap for Non-english locales
<code>data = new TIntObjectHashMap();</code>

The default bundle, English, will be <code>data = null</code>
geode-core/src/main/java/org/apache/geode/internal/i18n/AbstractStringIdResourceBundle.java