Program: 121685
Project: 121685
Buggy source:
public Shell createWindow(final Display display){
  Shell activeShell=display.getActiveShell();
  int style=SWT.DIALOG_TRIM | SWT.MIN | SWT.MAX| SWT.RESIZE;
  if (activeShell == null) {
    mapperShell=new Shell(mapperShell,style);
  }
 else {
    mapperShell=new Shell(activeShell,style);
  }
  mapperShell.addShellListener(new ShellListener(){
    @Override public void shellActivated(    ShellEvent e){
    }
    @Override public void shellClosed(    ShellEvent e){
      if (editor != null && editor.isDirty() && !closeWithoutPrompt) {
        boolean closeWindow=MessageDialog.openConfirm(mapperShell,"String_Node_Str",Messages.getString("String_Node_Str"));
        if (!closeWindow) {
          e.doit=false;
        }
 else {
          prepareClosing(SWT.CANCEL);
        }
      }
    }
    @Override public void shellDeactivated(    ShellEvent e){
    }
    @Override public void shellDeiconified(    ShellEvent e){
    }
    @Override public void shellIconified(    ShellEvent e){
    }
  }
);
  mapperShell.setMaximized(true);
  mapperShell.setImage(CoreImageProvider.getComponentIcon(mapperComponent.getComponent(),ICON_SIZE.ICON_32));
  IBrandingService brandingService=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  String productName=brandingService.getFullProductName();
  mapperShell.setText(productName + "String_Node_Str" + mapperComponent.getComponent().getName()+ "String_Node_Str"+ mapperComponent.getUniqueName());
  GridLayout parentLayout=new GridLayout(1,true);
  mapperShell.setLayout(parentLayout);
  mainSashForm=new SashForm(mapperShell,SWT.SMOOTH | SWT.VERTICAL);
  GridData mainSashFormGridData=new GridData(GridData.FILL_BOTH);
  mainSashForm.setLayoutData(mainSashFormGridData);
  datasViewSashForm=new SashForm(mainSashForm,SWT.SMOOTH | SWT.HORIZONTAL | SWT.BORDER);
  editor=new XmlMapEditor(mapperManager);
  editor.createPartControl(datasViewSashForm);
  if (copyOfMapData.getVarTables().isEmpty()) {
    VarTable varTable1=XmlmapFactory.eINSTANCE.createVarTable();
    varTable1.setName("String_Node_Str");
    varTable1.setMinimized(true);
    copyOfMapData.getVarTables().add(varTable1);
  }
  editor.setContent(copyOfMapData);
  tabFolderEditors=new TabFolderEditors(mainSashForm,mapperManager,SWT.BORDER);
  mainSashForm.setWeights(new int[]{70,30});
  footerComposite=new FooterComposite(mapperShell,this);
  footerComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  mapperShell.addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent e){
      ColorProviderMapper.releaseColors();
      FontProviderMapper.releaseFonts();
      ImageProviderMapper.releaseImages();
    }
  }
);
  editor.makeDefaultSelection();
  mapperShell.open();
  return mapperShell;
}

Fixed version (ground truth):
public Shell createWindow(final Display display){
  Shell activeShell=display.getActiveShell();
  int style=SWT.DIALOG_TRIM | SWT.MIN | SWT.MAX| SWT.APPLICATION_MODAL| SWT.RESIZE;
  if (activeShell == null) {
    mapperShell=new Shell(mapperShell,style);
  }
 else {
    mapperShell=new Shell(activeShell,style);
  }
  mapperShell.addShellListener(new ShellListener(){
    @Override public void shellActivated(    ShellEvent e){
    }
    @Override public void shellClosed(    ShellEvent e){
      if (editor != null && editor.isDirty() && !closeWithoutPrompt) {
        boolean closeWindow=MessageDialog.openConfirm(mapperShell,"String_Node_Str",Messages.getString("String_Node_Str"));
        if (!closeWindow) {
          e.doit=false;
        }
 else {
          prepareClosing(SWT.CANCEL);
        }
      }
    }
    @Override public void shellDeactivated(    ShellEvent e){
    }
    @Override public void shellDeiconified(    ShellEvent e){
    }
    @Override public void shellIconified(    ShellEvent e){
    }
  }
);
  mapperShell.setMaximized(true);
  mapperShell.setImage(CoreImageProvider.getComponentIcon(mapperComponent.getComponent(),ICON_SIZE.ICON_32));
  IBrandingService brandingService=(IBrandingService)GlobalServiceRegister.getDefault().getService(IBrandingService.class);
  String productName=brandingService.getFullProductName();
  mapperShell.setText(productName + "String_Node_Str" + mapperComponent.getComponent().getName()+ "String_Node_Str"+ mapperComponent.getUniqueName());
  GridLayout parentLayout=new GridLayout(1,true);
  mapperShell.setLayout(parentLayout);
  mainSashForm=new SashForm(mapperShell,SWT.SMOOTH | SWT.VERTICAL);
  GridData mainSashFormGridData=new GridData(GridData.FILL_BOTH);
  mainSashForm.setLayoutData(mainSashFormGridData);
  datasViewSashForm=new SashForm(mainSashForm,SWT.SMOOTH | SWT.HORIZONTAL | SWT.BORDER);
  editor=new XmlMapEditor(mapperManager);
  editor.createPartControl(datasViewSashForm);
  if (copyOfMapData.getVarTables().isEmpty()) {
    VarTable varTable1=XmlmapFactory.eINSTANCE.createVarTable();
    varTable1.setName("String_Node_Str");
    varTable1.setMinimized(true);
    copyOfMapData.getVarTables().add(varTable1);
  }
  editor.setContent(copyOfMapData);
  tabFolderEditors=new TabFolderEditors(mainSashForm,mapperManager,SWT.BORDER);
  mainSashForm.setWeights(new int[]{70,30});
  footerComposite=new FooterComposite(mapperShell,this);
  footerComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  mapperShell.addDisposeListener(new DisposeListener(){
    @Override public void widgetDisposed(    DisposeEvent e){
      ColorProviderMapper.releaseColors();
      FontProviderMapper.releaseFonts();
      ImageProviderMapper.releaseImages();
    }
  }
);
  editor.makeDefaultSelection();
  mapperShell.open();
  return mapperShell;
}