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); }