private void updateExtReadersWriters(
      ExternalizerAdapter adapter, Class<?> typeClass, int readerIndex) {
    writers.put(typeClass, adapter);
    ExternalizerAdapter prevReader = readers.put(readerIndex, adapter);
    // Several externalizers might share same id (i.e. HashMap and TreeMap use MapExternalizer)
    // but a duplicate is only considered when that particular index has already been entered
    // in the readers map and the externalizers are different (they're from different classes)
    if (prevReader != null && !prevReader.equals(adapter))
      throw log.duplicateExternalizerIdFound(
          adapter.id, typeClass, prevReader.externalizer.getClass().getName(), readerIndex);

    if (log.isTraceEnabled())
      log.tracef(
          "Loaded externalizer %s for %s with id %s and reader index %s",
          adapter.externalizer.getClass().getName(), typeClass, adapter.id, readerIndex);
  }