Program: 60354
Project: 60354
Buggy source:
public void testMapBinderWithMultipleAnnotationTypeSets(){
  Module module=new AbstractModule(){
    @Override protected void configure(){
      MapBinder<String,String> abcMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,Abc.class);
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      MapBinder<String,String> deMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,De.class);
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
    }
  }
;
  Injector injector=Guice.createInjector(module);
  Key<Map<String,String>> abcKey=Key.get(mapOfString,Abc.class);
  Map<String,String> abc=injector.getInstance(abcKey);
  Key<Map<String,String>> deKey=Key.get(mapOfString,De.class);
  Map<String,String> de=injector.getInstance(deKey);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),abc);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),de);
  assertMapVisitor(abcKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  assertMapVisitor(deKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
}

Fixed version (ground truth):
public void testMapBinderWithMultipleAnnotationTypeSets(){
  Module module=new AbstractModule(){
    @Override protected void configure(){
      MapBinder<String,String> abcMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,Abc.class);
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      abcMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      MapBinder<String,String> deMapBinder=MapBinder.newMapBinder(binder(),String.class,String.class,De.class);
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
      deMapBinder.addBinding("String_Node_Str").toInstance("String_Node_Str");
    }
  }
;
  Injector injector=Guice.createInjector(module);
  Key<Map<String,String>> abcKey=Key.get(mapOfString,Abc.class);
  Map<String,String> abc=injector.getInstance(abcKey);
  Key<Map<String,String>> deKey=Key.get(mapOfString,De.class);
  Map<String,String> de=injector.getInstance(deKey);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),abc);
  assertEquals(mapOf("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"),de);
  assertMapVisitor(abcKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  assertMapVisitor(deKey,stringType,stringType,setOf(module),BOTH,false,1,instance("String_Node_Str","String_Node_Str"),instance("String_Node_Str","String_Node_Str"));
  injector.getInstance(Key.get(mapOfStringProvider,Abc.class));
  injector.getInstance(Key.get(mapOfStringJavaxProvider,Abc.class));
  injector.getInstance(Key.get(mapOfStringProvider,De.class));
  injector.getInstance(Key.get(mapOfStringJavaxProvider,De.class));
}