Program: 43005
Project: 43005
Buggy source:
@Test public void testExternalizablePlusExternalizer() throws Throwable {
  final TestExternalizableWithSerializableFields ext1=new TestExternalizableWithSerializableFields();
  final TestExternalizableWithSerializableFields ext2=new TestExternalizableWithSerializableFields();
  final TestExternalizableWithSerializableFields ext3=new TestExternalizableWithSerializableFields();
  final Map<String,TestExternalizableWithSerializableFields> map=new HashMap<String,TestExternalizableWithSerializableFields>();
  map.put("String_Node_Str",ext1);
  map.put("String_Node_Str",ext2);
  map.put("String_Node_Str",ext3);
  final AtomicInteger version=new AtomicInteger();
  final AtomicBoolean javaSerializationMarshaller=new AtomicBoolean();
  runReadWriteTest(new ReadWriteTest(){
    public void configure(    final MarshallingConfiguration configuration) throws Throwable {
      configuration.setClassExternalizerFactory(new ClassExternalizerFactory(){
        public Externalizer getExternalizer(        final Class<?> type){
          if (type == HashMap.class) {
            return new HashMapExternalizer();
          }
 else {
            return null;
          }
        }
      }
);
      version.set(configuration.getVersion());
    }
    public void runWrite(    final Marshaller marshaller) throws Throwable {
      if (marshaller instanceof SerialMarshaller)       throw new SkipException("String_Node_Str");
      if (marshaller instanceof JavaSerializationMarshaller) {
        javaSerializationMarshaller.set(true);
      }
      marshaller.writeObject(map);
      marshaller.writeObject(map);
    }
    public void runRead(    final Unmarshaller unmarshaller) throws Throwable {
      if ((unmarshaller instanceof RiverUnmarshaller) && version.get() < 1) {
        throw new SkipException("String_Node_Str");
      }
      if ((unmarshaller instanceof ObjectInputStreamUnmarshaller) && javaSerializationMarshaller.get()) {
        throw new SkipException("String_Node_Str");
      }
      final Object m1=unmarshaller.readObject();
      assertEquals(HashMap.class,m1.getClass());
      assertSame(m1,unmarshaller.readObject());
      assertEOF(unmarshaller);
    }
  }
);
}

Fixed version (ground truth):
@Test public void testExternalizablePlusExternalizer() throws Throwable {
  final TestExternalizableWithSerializableFields ext1=new TestExternalizableWithSerializableFields();
  final TestExternalizableWithSerializableFields ext2=new TestExternalizableWithSerializableFields();
  final TestExternalizableWithSerializableFields ext3=new TestExternalizableWithSerializableFields();
  final Map<String,TestExternalizableWithSerializableFields> map=new HashMap<String,TestExternalizableWithSerializableFields>();
  map.put("String_Node_Str",ext1);
  map.put("String_Node_Str",ext2);
  map.put("String_Node_Str",ext3);
  final AtomicInteger version=new AtomicInteger();
  final AtomicBoolean javaSerializationMarshaller=new AtomicBoolean();
  runReadWriteTest(new ReadWriteTest(){
    public void configure(    final MarshallingConfiguration configuration) throws Throwable {
      configuration.setClassExternalizerFactory(new ClassExternalizerFactory(){
        public Externalizer getExternalizer(        final Class<?> type){
          if (type == HashMap.class) {
            return new HashMapExternalizer();
          }
 else {
            return null;
          }
        }
      }
);
      version.set(configuration.getVersion());
    }
    public void runWrite(    final Marshaller marshaller) throws Throwable {
      if (marshaller instanceof JavaSerializationMarshaller) {
        javaSerializationMarshaller.set(true);
      }
      marshaller.writeObject(map);
      marshaller.writeObject(map);
    }
    public void runRead(    final Unmarshaller unmarshaller) throws Throwable {
      if ((unmarshaller instanceof RiverUnmarshaller) && version.get() < 1) {
        throw new SkipException("String_Node_Str");
      }
      if ((unmarshaller instanceof ObjectInputStreamUnmarshaller) && javaSerializationMarshaller.get()) {
        throw new SkipException("String_Node_Str");
      }
      final Object m1=unmarshaller.readObject();
      assertEquals(HashMap.class,m1.getClass());
      assertSame(m1,unmarshaller.readObject());
      assertEOF(unmarshaller);
    }
  }
);
}