Program: 35441
Project: 35441
Buggy source:
@Override public void handleContactCreation(final ContactModelDTO contactModelDTO,final String email,final String firstName,final String familyName,final String organizationName,final OrgUnitDTO mainOrgUnit,final List<OrgUnitDTO> secondaryOrgUnits){
  CheckContactDuplication checkContactDuplication;
  if (contactModelDTO.getType() == ContactModelType.INDIVIDUAL) {
    checkContactDuplication=new CheckContactDuplication(null,email,familyName,firstName);
  }
 else {
    checkContactDuplication=new CheckContactDuplication(null,email,familyName,null);
  }
  dispatch.execute(checkContactDuplication,new AsyncCallback<ListResult<ContactDTO>>(){
    @Override public void onFailure(    Throwable caught){
      Log.error("String_Node_Str");
    }
    @Override public void onSuccess(    ListResult<ContactDTO> result){
      final HashMap<String,Object> properties=buildPropertyMap(contactModelDTO,email,firstName,familyName,organizationName,mainOrgUnit,secondaryOrgUnits);
      if (result == null || result.getSize() == 0) {
        createEntity(properties,listComboBox);
        return;
      }
      final DedupeContactDialog dedupeContactDialog=new DedupeContactDialog(true);
      dedupeContactDialog.getPossibleDuplicatesGrid().getStore().add(result.getList());
      dedupeContactDialog.getFirstStepMainButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
        @Override public void componentSelected(        ButtonEvent ce){
          createEntity(properties,listComboBox);
          dedupeContactDialog.hide();
        }
      }
);
      dedupeContactDialog.setSecondStepHandler(new DedupeContactDialog.SecondStepHandler(){
        @Override public void initialize(        final Integer contactId,        final ListStore<ContactDuplicatedProperty> propertiesStore){
          dispatch.execute(new GetContactDuplicatedProperties(contactId,null,properties),new CommandResultHandler<ListResult<ContactDuplicatedProperty>>(){
            @Override protected void onCommandSuccess(            ListResult<ContactDuplicatedProperty> result){
              propertiesStore.add(result.getList());
            }
          }
,new LoadingMask(dedupeContactDialog));
        }
        @Override public void downloadImage(        String id,        final Image image){
          imageProvider.provideDataUrl(id,new SuccessCallback<String>(){
            @Override public void onSuccess(            String dataUrl){
              image.setUrl(dataUrl);
            }
          }
);
        }
        @Override public void handleDedupeContact(        final Integer targetedContactId,        List<ContactDuplicatedProperty> selectedProperties){
          dispatch.execute(new DedupeContact(selectedProperties,targetedContactId),new CommandResultHandler<ContactDTO>(){
            @Override protected void onCommandSuccess(            ContactDTO targetedContactDTO){
              dedupeContactDialog.hide();
              eventBus.navigateRequest(Page.CONTACT_DASHBOARD.requestWith(RequestParameter.ID,targetedContactId));
            }
          }
);
        }
      }
);
      dedupeContactDialog.show();
    }
  }
);
}

Fixed version (ground truth):
@Override public void handleContactCreation(final ContactModelDTO contactModelDTO,final String email,final String firstName,final String familyName,final String organizationName,final OrgUnitDTO mainOrgUnit,final List<OrgUnitDTO> secondaryOrgUnits){
  CheckContactDuplication checkContactDuplication;
  if (contactModelDTO.getType() == ContactModelType.INDIVIDUAL) {
    checkContactDuplication=new CheckContactDuplication(null,email,familyName,firstName);
  }
 else {
    checkContactDuplication=new CheckContactDuplication(null,email,familyName,null);
  }
  dispatch.execute(checkContactDuplication,new AsyncCallback<ListResult<ContactDTO>>(){
    @Override public void onFailure(    Throwable caught){
      Log.error("String_Node_Str");
    }
    @Override public void onSuccess(    ListResult<ContactDTO> result){
      final HashMap<String,Object> properties=buildPropertyMap(contactModelDTO,email,firstName,familyName,organizationName,mainOrgUnit,secondaryOrgUnits);
      if (result == null || result.getSize() == 0) {
        createEntity(properties,listComboBox);
        return;
      }
      final DedupeContactDialog dedupeContactDialog=new DedupeContactDialog(true);
      dedupeContactDialog.getPossibleDuplicatesGrid().getStore().add(result.getList());
      dedupeContactDialog.getFirstStepMainButton().addSelectionListener(new SelectionListener<ButtonEvent>(){
        @Override public void componentSelected(        ButtonEvent ce){
          createEntity(properties,listComboBox);
          dedupeContactDialog.hide();
        }
      }
);
      dedupeContactDialog.setSecondStepHandler(new DedupeContactDialog.SecondStepHandler(){
        @Override public void initialize(        final Integer contactId,        final ListStore<ContactDuplicatedProperty> propertiesStore){
          dispatch.execute(new GetContactDuplicatedProperties(contactId,null,properties),new CommandResultHandler<ListResult<ContactDuplicatedProperty>>(){
            @Override protected void onCommandSuccess(            ListResult<ContactDuplicatedProperty> result){
              propertiesStore.add(result.getList());
            }
          }
,new LoadingMask(dedupeContactDialog));
        }
        @Override public void downloadImage(        String id,        final Image image){
          imageProvider.provideDataUrl(id,new SuccessCallback<String>(){
            @Override public void onSuccess(            String dataUrl){
              image.setUrl(dataUrl);
            }
          }
);
        }
        @Override public void handleDedupeContact(        final Integer targetedContactId,        List<ContactDuplicatedProperty> selectedProperties){
          dispatch.execute(new DedupeContact(selectedProperties,targetedContactId),new CommandResultHandler<ContactDTO>(){
            @Override protected void onCommandSuccess(            ContactDTO targetedContactDTO){
              dedupeContactDialog.hide();
              eventBus.navigateRequest(Page.CONTACT_DASHBOARD.requestWith(RequestParameter.ID,targetedContactId));
            }
          }
);
        }
        @Override public void handleCancel(){
          dedupeContactDialog.hide();
        }
      }
);
      dedupeContactDialog.show();
    }
  }
);
}