Program: 66745
Project: 66745
Buggy source:
/** 
 * Show ProgressMonitorDialog
 */
private void updateResultsProcess(){
  needsUpdateUI=true;
  clearResultSetTable();
  IRunnableWithProgress runnable=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
      monitor.beginTask("String_Node_Str",IProgressMonitor.UNKNOWN);
      if (resultSetTable != null && !resultSetTable.isDisposed()) {
        ModuleHandle handle=null;
        DataSetHandle dsHandle=((DataSetEditor)getContainer()).getHandle();
        handle=dsHandle.getModuleHandle();
        DataSetPreviewer previewer=new DataSetPreviewer(dsHandle,getMaxRowPreference());
        Map dataSetBindingMap=new HashMap();
        Map dataSourceBindingMap=new HashMap();
        Map appContext=new HashMap();
        try {
          clearProperyBindingMap(dataSetBindingMap,dataSourceBindingMap);
          ResourceIdentifiers identifiers=new ResourceIdentifiers();
          String resouceIDs=ResourceIdentifiers.ODA_APP_CONTEXT_KEY_CONSUMER_RESOURCE_IDS;
          identifiers.setApplResourceBaseURI(DTPUtil.getInstance().getBIRTResourcePath());
          identifiers.setDesignResourceBaseURI(DTPUtil.getInstance().getReportDesignPath());
          appContext.put(resouceIDs,identifiers);
          AppContextPopulator.populateApplicationContext(dsHandle,appContext);
          previewer.open(appContext,getEngineConfig(handle));
          IResultIterator itr=previewer.preview();
          metaData=itr.getResultMetaData();
          populateRecords(itr);
          monitor.done();
        }
 catch (        BirtException e) {
          metaData=null;
          throw new InvocationTargetException(e);
        }
 finally {
          try {
            AppContextResourceReleaser.release(appContext);
            previewer.close();
          }
 catch (          BirtException e) {
            e.printStackTrace();
          }
          resetPropertyBinding(dataSetBindingMap,dataSourceBindingMap);
        }
      }
    }
  }
;
  try {
    new ProgressMonitorDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell()){
      protected void cancelPressed(){
        super.cancelPressed();
        needsUpdateUI=false;
      }
    }
.run(true,true,runnable);
  }
 catch (  InvocationTargetException e) {
    org.eclipse.datatools.connectivity.internal.ui.dialogs.ExceptionHandler.showException(resultSetTable.getShell(),Messages.getString("String_Node_Str"),e.getCause().getLocalizedMessage(),e.getCause());
  }
catch (  InterruptedException e) {
    org.eclipse.datatools.connectivity.internal.ui.dialogs.ExceptionHandler.showException(resultSetTable.getShell(),Messages.getString("String_Node_Str"),e.getLocalizedMessage(),e);
  }
  updateResultSetTableUI();
}

Fixed version (ground truth):
/** 
 * Show ProgressMonitorDialog
 */
private void updateResultsProcess(){
  needsUpdateUI=true;
  clearResultSetTable();
  IRunnableWithProgress runnable=new IRunnableWithProgress(){
    public void run(    IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
      monitor.beginTask("String_Node_Str",IProgressMonitor.UNKNOWN);
      if (resultSetTable != null && !resultSetTable.isDisposed()) {
        ModuleHandle handle=null;
        DataSetHandle dsHandle=((DataSetEditor)getContainer()).getHandle();
        handle=dsHandle.getModuleHandle();
        DataSetPreviewer previewer=new DataSetPreviewer(dsHandle,getMaxRowPreference(),((DataSetEditor)getContainer()));
        Map dataSetBindingMap=new HashMap();
        Map dataSourceBindingMap=new HashMap();
        Map appContext=new HashMap();
        try {
          clearProperyBindingMap(dataSetBindingMap,dataSourceBindingMap);
          ResourceIdentifiers identifiers=new ResourceIdentifiers();
          String resouceIDs=ResourceIdentifiers.ODA_APP_CONTEXT_KEY_CONSUMER_RESOURCE_IDS;
          identifiers.setApplResourceBaseURI(DTPUtil.getInstance().getBIRTResourcePath());
          identifiers.setDesignResourceBaseURI(DTPUtil.getInstance().getReportDesignPath());
          appContext.put(resouceIDs,identifiers);
          AppContextPopulator.populateApplicationContext(dsHandle,appContext);
          previewer.open(appContext,getEngineConfig(handle));
          IResultIterator itr=previewer.preview();
          metaData=itr.getResultMetaData();
          populateRecords(itr);
          monitor.done();
        }
 catch (        BirtException e) {
          metaData=null;
          throw new InvocationTargetException(e);
        }
 finally {
          try {
            AppContextResourceReleaser.release(appContext);
            previewer.close();
          }
 catch (          BirtException e) {
            e.printStackTrace();
          }
          resetPropertyBinding(dataSetBindingMap,dataSourceBindingMap);
        }
      }
    }
  }
;
  try {
    new ProgressMonitorDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell()){
      protected void cancelPressed(){
        super.cancelPressed();
        needsUpdateUI=false;
      }
    }
.run(true,true,runnable);
  }
 catch (  InvocationTargetException e) {
    org.eclipse.datatools.connectivity.internal.ui.dialogs.ExceptionHandler.showException(resultSetTable.getShell(),Messages.getString("String_Node_Str"),e.getCause().getLocalizedMessage(),e.getCause());
  }
catch (  InterruptedException e) {
    org.eclipse.datatools.connectivity.internal.ui.dialogs.ExceptionHandler.showException(resultSetTable.getShell(),Messages.getString("String_Node_Str"),e.getLocalizedMessage(),e);
  }
  updateResultSetTableUI();
}