code: @SuppressWarnings("unchecked")
      public Map<String, V> getData() {
          final TreeMap<String, V> result = new TreeMap<>(); // returned map must be sorted
          for (int i = 0; i < data.size(); i++) {
              // The Eclipse compiler does not need the typecast to V, but the Oracle compiler sure does.
              result.put(data.getKeyAt(i), (V) data.getValueAt(i));
          }
          return Collections.unmodifiableMap(result);
      }
docs: Returns the message data as an unmodifiable Map.
  @return the message data as an unmodifiable map.