Program: 133512
Project: 133512
Buggy source:
/** 
 * Loads the plot categories and types (dependent series) as well as the time/cycle data (independent series) from the data source using the viz connection's widget. Work is performed on a separate thread.
 */
private void load(){
  loaded=false;
  loadLock.lock();
  try {
    final URI uri=getDataSource();
    final IVizConnection<VisItSwtConnection> connection=getConnection();
    if (!loading && uri != null && connection != null && connection.getState() == ConnectionState.Connected) {
      loading=true;
      plotTypes.clear();
      super.setIndependentSeries(null);
      Job loadJob=new Job("String_Node_Str"){
        @Override protected IStatus run(        IProgressMonitor monitor){
          monitor.beginTask("String_Node_Str",100);
          String sourcePath=getSourcePath(uri);
          ViewerMethods methods=connection.getWidget().getViewerMethods();
          methods.openDatabase(sourcePath);
          monitor.worked(20);
          FileInfo info=methods.getDatabaseInfo();
          monitor.worked(20);
          addIndependentSeries(info);
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getMeshes());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getMaterials());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getScalars());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getVectors());
          monitor.worked(10);
          loadLock.lock();
          try {
            loading=false;
            loaded=true;
          }
  finally {
            loadLock.unlock();
          }
          notifyPlotListeners("String_Node_Str","String_Node_Str");
          monitor.worked(10);
          return new Status(Status.OK,"String_Node_Str",1,"String_Node_Str",null);
        }
      }
;
      loadJob.schedule();
    }
  }
  finally {
    loadLock.unlock();
  }
  return;
}

Fixed version (ground truth):
/** 
 * Loads the plot categories and types (dependent series) as well as the time/cycle data (independent series) from the data source using the viz connection's widget. Work is performed on a separate thread.
 */
private void load(){
  loaded=false;
  loadLock.lock();
  try {
    final URI uri=getDataSource();
    final IVizConnection<VisItSwtConnection> connection=getConnection();
    if (!loading && uri != null && connection != null && connection.getState() == ConnectionState.Connected) {
      loading=true;
      plotTypes.clear();
      super.setIndependentSeries(null);
      Job loadJob=new Job("String_Node_Str"){
        @Override protected IStatus run(        IProgressMonitor monitor){
          monitor.beginTask("String_Node_Str",100);
          String sourcePath=getSourcePath(uri);
          ViewerMethods methods=connection.getWidget().getViewerMethods();
          methods.openDatabase(sourcePath);
          monitor.worked(20);
          FileInfo info=methods.getDatabaseInfo();
          monitor.worked(20);
          addIndependentSeries(info);
          monitor.worked(5);
          addPlotCategory("String_Node_Str",info.getMeshes());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getMaterials());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getScalars());
          monitor.worked(10);
          addPlotCategory("String_Node_Str",info.getVectors());
          monitor.worked(10);
          setInitialPlotType();
          monitor.worked(5);
          loadLock.lock();
          try {
            loading=false;
            loaded=true;
          }
  finally {
            loadLock.unlock();
          }
          notifyPlotListeners("String_Node_Str","String_Node_Str");
          monitor.worked(10);
          return new Status(Status.OK,"String_Node_Str",1,"String_Node_Str",null);
        }
      }
;
      loadJob.schedule();
    }
  }
  finally {
    loadLock.unlock();
  }
  return;
}