Program: 69640
Project: 69640
Buggy source:
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (cmc == source) {
    cleanUp();
  }
 else   if (createCtrl == source) {
    cmc.deactivate();
    if (Event.DONE_EVENT.equals(event)) {
      doOpenDetailsSettings(ureq,createCtrl.getAddedEntry());
      cleanUp();
    }
 else     if (CreateRepositoryEntryController.CREATION_WIZARD.equals(event)) {
      doPostCreateWizard(ureq,createCtrl.getAddedEntry(),createCtrl.getHandler());
    }
 else {
      cleanUp();
    }
  }
 else   if (importCtrl == source) {
    cmc.deactivate();
    if (Event.DONE_EVENT.equals(event)) {
      doOpenDetailsSettings(ureq,importCtrl.getImportedEntry());
      cleanUp();
    }
 else {
      cleanUp();
    }
  }
 else   if (wizardCtrl == source) {
    if (event.equals(Event.CHANGED_EVENT) || event.equals(Event.CANCELLED_EVENT)) {
      getWindowControl().pop();
      RepositoryEntry newEntry=(RepositoryEntry)wizardCtrl.getRunContext().get("String_Node_Str");
      cleanUp();
      doOpenDetailsSettings(ureq,newEntry);
    }
  }
 else   if (searchCtrl == source) {
    if (event instanceof SearchEvent) {
      SearchEvent se=(SearchEvent)event;
      doSearch(se);
    }
  }
 else   if (detailsCtrl == source) {
    if (event instanceof OpenEvent) {
      OpenEvent oe=(OpenEvent)event;
      RepositoryEntryRef repoEntryKey=oe.getRepositoryEntry();
      doOpenDetails(ureq,repoEntryKey);
    }
  }
 else   if (userSearchCtr == source) {
    @SuppressWarnings("String_Node_Str") List<AuthoringEntryRow> rows=(List<AuthoringEntryRow>)userSearchCtr.getUserObject();
    if (event instanceof MultiIdentityChosenEvent) {
      MultiIdentityChosenEvent mice=(MultiIdentityChosenEvent)event;
      doAddOwners(mice.getChosenIdentities(),rows);
    }
 else     if (event instanceof SingleIdentityChosenEvent) {
      SingleIdentityChosenEvent sice=(SingleIdentityChosenEvent)event;
      List<Identity> futureOwners=Collections.singletonList(sice.getChosenIdentity());
      doAddOwners(futureOwners,rows);
    }
    cmc.deactivate();
    cleanUp();
  }
  super.event(ureq,source,event);
}

Fixed version (ground truth):
@Override protected void event(UserRequest ureq,Controller source,Event event){
  if (cmc == source) {
    cleanUp();
  }
 else   if (createCtrl == source) {
    cmc.deactivate();
    if (Event.DONE_EVENT.equals(event)) {
      doOpenDetailsSettings(ureq,createCtrl.getAddedEntry());
      cleanUp();
    }
 else     if (CreateRepositoryEntryController.CREATION_WIZARD.equals(event)) {
      doPostCreateWizard(ureq,createCtrl.getAddedEntry(),createCtrl.getHandler());
    }
 else {
      cleanUp();
    }
  }
 else   if (importCtrl == source) {
    cmc.deactivate();
    if (Event.DONE_EVENT.equals(event)) {
      doOpenDetailsSettings(ureq,importCtrl.getImportedEntry());
      cleanUp();
    }
 else {
      cleanUp();
    }
  }
 else   if (wizardCtrl == source) {
    if (event.equals(Event.CHANGED_EVENT) || event.equals(Event.CANCELLED_EVENT)) {
      getWindowControl().pop();
      RepositoryEntry newEntry=(RepositoryEntry)wizardCtrl.getRunContext().get("String_Node_Str");
      cleanUp();
      doOpenDetailsSettings(ureq,newEntry);
    }
  }
 else   if (searchCtrl == source) {
    if (event instanceof SearchEvent) {
      SearchEvent se=(SearchEvent)event;
      doSearch(se);
    }
 else     if (event == Event.CANCELLED_EVENT) {
      System.out.println();
      searchParams.setResourceTypes(null);
      searchParams.setIdAndRefs(null);
      searchParams.setAuthor(null);
      searchParams.setDisplayname(null);
      searchParams.setDescription(null);
    }
  }
 else   if (detailsCtrl == source) {
    if (event instanceof OpenEvent) {
      OpenEvent oe=(OpenEvent)event;
      RepositoryEntryRef repoEntryKey=oe.getRepositoryEntry();
      doOpenDetails(ureq,repoEntryKey);
    }
  }
 else   if (userSearchCtr == source) {
    @SuppressWarnings("String_Node_Str") List<AuthoringEntryRow> rows=(List<AuthoringEntryRow>)userSearchCtr.getUserObject();
    if (event instanceof MultiIdentityChosenEvent) {
      MultiIdentityChosenEvent mice=(MultiIdentityChosenEvent)event;
      doAddOwners(mice.getChosenIdentities(),rows);
    }
 else     if (event instanceof SingleIdentityChosenEvent) {
      SingleIdentityChosenEvent sice=(SingleIdentityChosenEvent)event;
      List<Identity> futureOwners=Collections.singletonList(sice.getChosenIdentity());
      doAddOwners(futureOwners,rows);
    }
    cmc.deactivate();
    cleanUp();
  }
  super.event(ureq,source,event);
}