Program: 69892
Project: 69892
Buggy source:
public BaseFullWebappController(UserRequest ureq,WindowControl ouisc_wControl,BaseFullWebappControllerParts baseFullWebappControllerParts){
  super(ureq,null);
  this.baseFullWebappControllerParts=baseFullWebappControllerParts;
  guiMessage=new GUIMessage();
  guimsgPanel=new OncePanel("String_Node_Str");
  final WindowControl origWCo=ouisc_wControl;
  WindowControl myWControl=new WindowControl(){
    private WindowControlInfo wci;
{
      wci=new WindowControlInfoImpl(BaseFullWebappController.this,origWCo.getWindowControlInfo());
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pushToMainArea(org.olat.core.gui.components.Component)
 */
    @SuppressWarnings("String_Node_Str") public void pushToMainArea(    Component newMainArea){
      currentGuiStack.pushContent(newMainArea);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pushAsModalDialog(java.lang.String,org.olat.core.gui.components.Component)
 */
    @SuppressWarnings("String_Node_Str") public void pushAsModalDialog(    Component newModalDialog){
      currentGuiStack.pushModalDialog(newModalDialog);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pop()
 */
    @SuppressWarnings("String_Node_Str") public void pop(){
      currentGuiStack.popContent();
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setInfo(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setInfo(    String info){
      guiMessage.setInfo(info);
      guimsgPanel.setContent(guimsgVc);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setError(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setError(    String error){
      guiMessage.setError(error);
      guimsgPanel.setContent(guimsgVc);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setWarning(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setWarning(    String warning){
      guiMessage.setWarn(warning);
      guimsgPanel.setContent(guimsgVc);
    }
    public WindowControlInfo getWindowControlInfo(){
      return wci;
    }
    public void makeFlat(){
      throw new AssertException("String_Node_Str");
    }
    public BusinessControl getBusinessControl(){
      return origWCo.getBusinessControl();
    }
    public WindowBackOffice getWindowBackOffice(){
      return origWCo.getWindowBackOffice();
    }
  }
;
  overrideWindowControl(myWControl);
  myDTabsImpl=new DTabs(){
    @Override public void activate(    UserRequest ureq,    DTab dTab,    List<ContextEntry> entries){
      BaseFullWebappController.this.activate(ureq,dTab,null,entries);
    }
    @Override public void activateStatic(    UserRequest ureq,    String className,    List<ContextEntry> entries){
      BaseFullWebappController.this.activateStatic(ureq,className,null,entries);
    }
    public void addDTab(    UserRequest ureq,    DTab dt){
      BaseFullWebappController.this.addDTab(ureq,dt);
    }
    public DTab createDTab(    OLATResourceable ores,    String title){
      return BaseFullWebappController.this.createDTab(ores,null,title);
    }
    public DTab createDTab(    OLATResourceable ores,    OLATResourceable initialOres,    String title){
      return BaseFullWebappController.this.createDTab(ores,initialOres,title);
    }
    public DTab getDTab(    OLATResourceable ores){
      return BaseFullWebappController.this.getDTab(ores);
    }
    public void removeDTab(    UserRequest ureq,    DTab dt){
      BaseFullWebappController.this.removeDTab(ureq,dt);
    }
  }
;
  Window myWindow=myWControl.getWindowBackOffice().getWindow();
  myWindow.setAttribute("String_Node_Str",myDTabsImpl);
  myWindow.addListener(this);
  initialize(ureq);
  initialPanel=putInitialPanel(mainVc);
  if (CoreSpringFactory.containsBean("String_Node_Str")) {
    Boolean alreadySeen=((Boolean)ureq.getUserSession().getEntry(PRESENTED_AFTER_LOGIN_WORKFLOW));
    if (ureq.getUserSession().isAuthenticated() && alreadySeen == null) {
      Controller aftLHookCtr=((ControllerCreator)CoreSpringFactory.getBean("String_Node_Str")).createController(ureq,getWindowControl());
      listenTo(aftLHookCtr);
      aftLHookCtr.getInitialComponent();
      ureq.getUserSession().putEntry(PRESENTED_AFTER_LOGIN_WORKFLOW,Boolean.TRUE);
    }
  }
  getWindowControl().getWindowBackOffice().addCycleListener(this);
  OLATResourceable wrappedLocale=OresHelper.createOLATResourceableType(Locale.class);
  ureq.getUserSession().getSingleUserEventCenter().registerFor(this,getIdentity(),wrappedLocale);
  GlobalStickyMessage.registerForGlobalStickyMessage(this,ureq.getIdentity());
}

Fixed version (ground truth):
public BaseFullWebappController(UserRequest ureq,WindowControl ouisc_wControl,BaseFullWebappControllerParts baseFullWebappControllerParts){
  super(ureq,null);
  this.baseFullWebappControllerParts=baseFullWebappControllerParts;
  guiMessage=new GUIMessage();
  guimsgPanel=new OncePanel("String_Node_Str");
  final WindowControl origWCo=ouisc_wControl;
  WindowControl myWControl=new WindowControl(){
    private WindowControlInfo wci;
{
      wci=new WindowControlInfoImpl(BaseFullWebappController.this,origWCo.getWindowControlInfo());
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pushToMainArea(org.olat.core.gui.components.Component)
 */
    @SuppressWarnings("String_Node_Str") public void pushToMainArea(    Component newMainArea){
      currentGuiStack.pushContent(newMainArea);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pushAsModalDialog(java.lang.String,org.olat.core.gui.components.Component)
 */
    @SuppressWarnings("String_Node_Str") public void pushAsModalDialog(    Component newModalDialog){
      currentGuiStack.pushModalDialog(newModalDialog);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#pop()
 */
    @SuppressWarnings("String_Node_Str") public void pop(){
      currentGuiStack.popContent();
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setInfo(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setInfo(    String info){
      guiMessage.setInfo(info);
      guimsgPanel.setContent(guimsgVc);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setError(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setError(    String error){
      guiMessage.setError(error);
      guimsgPanel.setContent(guimsgVc);
    }
    /** 
 * @see org.olat.core.gui.control.WindowControl#setWarning(java.lang.String)
 */
    @SuppressWarnings("String_Node_Str") public void setWarning(    String warning){
      guiMessage.setWarn(warning);
      guimsgPanel.setContent(guimsgVc);
    }
    public WindowControlInfo getWindowControlInfo(){
      return wci;
    }
    public void makeFlat(){
      throw new AssertException("String_Node_Str");
    }
    public BusinessControl getBusinessControl(){
      return origWCo.getBusinessControl();
    }
    public WindowBackOffice getWindowBackOffice(){
      return origWCo.getWindowBackOffice();
    }
  }
;
  overrideWindowControl(myWControl);
  myDTabsImpl=new DTabs(){
    @Override public void activate(    UserRequest ureq,    DTab dTab,    List<ContextEntry> entries){
      BaseFullWebappController.this.activate(ureq,dTab,null,entries);
    }
    @Override public void activateStatic(    UserRequest ureq,    String className,    List<ContextEntry> entries){
      BaseFullWebappController.this.activateStatic(ureq,className,null,entries);
    }
    public boolean addDTab(    UserRequest ureq,    DTab dt){
      return BaseFullWebappController.this.addDTab(ureq,dt);
    }
    public DTab createDTab(    OLATResourceable ores,    String title){
      return BaseFullWebappController.this.createDTab(ores,null,title);
    }
    public DTab createDTab(    OLATResourceable ores,    OLATResourceable initialOres,    String title){
      return BaseFullWebappController.this.createDTab(ores,initialOres,title);
    }
    public DTab getDTab(    OLATResourceable ores){
      return BaseFullWebappController.this.getDTab(ores);
    }
    public void removeDTab(    UserRequest ureq,    DTab dt){
      BaseFullWebappController.this.removeDTab(ureq,dt);
    }
  }
;
  Window myWindow=myWControl.getWindowBackOffice().getWindow();
  myWindow.setAttribute("String_Node_Str",myDTabsImpl);
  myWindow.addListener(this);
  initialize(ureq);
  initialPanel=putInitialPanel(mainVc);
  if (CoreSpringFactory.containsBean("String_Node_Str")) {
    Boolean alreadySeen=((Boolean)ureq.getUserSession().getEntry(PRESENTED_AFTER_LOGIN_WORKFLOW));
    if (ureq.getUserSession().isAuthenticated() && alreadySeen == null) {
      Controller aftLHookCtr=((ControllerCreator)CoreSpringFactory.getBean("String_Node_Str")).createController(ureq,getWindowControl());
      listenTo(aftLHookCtr);
      aftLHookCtr.getInitialComponent();
      ureq.getUserSession().putEntry(PRESENTED_AFTER_LOGIN_WORKFLOW,Boolean.TRUE);
    }
  }
  getWindowControl().getWindowBackOffice().addCycleListener(this);
  OLATResourceable wrappedLocale=OresHelper.createOLATResourceableType(Locale.class);
  ureq.getUserSession().getSingleUserEventCenter().registerFor(this,getIdentity(),wrappedLocale);
  GlobalStickyMessage.registerForGlobalStickyMessage(this,ureq.getIdentity());
}