Program: 7254
Project: 7254
Buggy source:
/** 
 * Overridden compareRemoteRevisionWith function Loads up the previous project configuration and compares  that against the current to determine if the project has changed
 * @see hudson.scm.SCM#compareRemoteRevisionWith(hudson.model.AbstractProject,hudson.Launcher,hudson.FilePath,hudson.model.TaskListener,hudson.scm.SCMRevisionState)
 */
@Override protected PollingResult compareRemoteRevisionWith(AbstractProject<?,?> project,Launcher launcher,FilePath workspace,final TaskListener listener,SCMRevisionState _baseline) throws IOException, InterruptedException {
  logger.info("String_Node_Str");
  IntegrityRevisionState baseline;
  if (_baseline instanceof IntegrityRevisionState) {
    baseline=(IntegrityRevisionState)_baseline;
    AbstractBuild<?,?> lastSuccessfulBuild=project.getLastSuccessfulBuild();
    if (null == lastSuccessfulBuild) {
      logger.info("String_Node_Str");
      return PollingResult.BUILD_NOW;
    }
 else {
      baseline=(IntegrityRevisionState)calcRevisionsFromBuild(lastSuccessfulBuild,launcher,listener);
      if (null != baseline && null != baseline.getSIProject()) {
        IntegrityCMProject oldProject=baseline.getSIProject();
        APISession api=createAPISession();
        try {
          listener.getLogger().println("String_Node_Str" + configPath);
          initializeCMProject(api);
          listener.getLogger().println("String_Node_Str" + configPath);
          initializeCMProjectMembers(api);
          siProject.compareBaseline(oldProject);
          if (siProject.hasProjectChanged()) {
            listener.getLogger().println("String_Node_Str" + siProject.getChangeCount() + "String_Node_Str");
            return PollingResult.SIGNIFICANT;
          }
 else {
            listener.getLogger().println("String_Node_Str");
            return PollingResult.NO_CHANGES;
          }
        }
 catch (        APIException aex) {
          logger.error("String_Node_Str");
          listener.getLogger().println("String_Node_Str");
          ExceptionHandler eh=new ExceptionHandler(aex);
          logger.error(eh.getMessage());
          listener.getLogger().println(eh.getMessage());
          logger.info(eh.getCommand() + "String_Node_Str" + eh.getExitCode());
          listener.getLogger().println(eh.getCommand() + "String_Node_Str" + eh.getExitCode());
          aex.printStackTrace();
          return PollingResult.NO_CHANGES;
        }
 finally {
          api.Terminate();
        }
      }
 else {
        logger.info("String_Node_Str");
        return PollingResult.BUILD_NOW;
      }
    }
  }
 else {
    logger.error("String_Node_Str");
    return PollingResult.NO_CHANGES;
  }
}

Fixed version (ground truth):
/** 
 * Overridden compareRemoteRevisionWith function Loads up the previous project configuration and compares  that against the current to determine if the project has changed
 * @see hudson.scm.SCM#compareRemoteRevisionWith(hudson.model.AbstractProject,hudson.Launcher,hudson.FilePath,hudson.model.TaskListener,hudson.scm.SCMRevisionState)
 */
@Override protected PollingResult compareRemoteRevisionWith(AbstractProject<?,?> project,Launcher launcher,FilePath workspace,final TaskListener listener,SCMRevisionState _baseline) throws IOException, InterruptedException {
  logger.info("String_Node_Str");
  IntegrityRevisionState baseline;
  if (_baseline instanceof IntegrityRevisionState) {
    baseline=(IntegrityRevisionState)_baseline;
    AbstractBuild<?,?> lastSuccessfulBuild=project.getLastSuccessfulBuild();
    if (null == lastSuccessfulBuild) {
      logger.info("String_Node_Str");
      return PollingResult.BUILD_NOW;
    }
 else {
      baseline=(IntegrityRevisionState)calcRevisionsFromBuild(lastSuccessfulBuild,launcher,listener);
      if (null != baseline && null != baseline.getSIProject()) {
        IntegrityCMProject oldProject=baseline.getSIProject();
        APISession api=createAPISession();
        if (null != api) {
          try {
            listener.getLogger().println("String_Node_Str" + configPath);
            initializeCMProject(api);
            listener.getLogger().println("String_Node_Str" + configPath);
            initializeCMProjectMembers(api);
            siProject.compareBaseline(oldProject);
            if (siProject.hasProjectChanged()) {
              listener.getLogger().println("String_Node_Str" + siProject.getChangeCount() + "String_Node_Str");
              return PollingResult.SIGNIFICANT;
            }
 else {
              listener.getLogger().println("String_Node_Str");
              return PollingResult.NO_CHANGES;
            }
          }
 catch (          APIException aex) {
            logger.error("String_Node_Str");
            listener.getLogger().println("String_Node_Str");
            ExceptionHandler eh=new ExceptionHandler(aex);
            logger.error(eh.getMessage());
            listener.getLogger().println(eh.getMessage());
            logger.info(eh.getCommand() + "String_Node_Str" + eh.getExitCode());
            listener.getLogger().println(eh.getCommand() + "String_Node_Str" + eh.getExitCode());
            aex.printStackTrace();
            return PollingResult.NO_CHANGES;
          }
 finally {
            api.Terminate();
          }
        }
 else {
          listener.getLogger().println("String_Node_Str");
          return PollingResult.NO_CHANGES;
        }
      }
 else {
        logger.info("String_Node_Str");
        return PollingResult.BUILD_NOW;
      }
    }
  }
 else {
    logger.error("String_Node_Str");
    return PollingResult.NO_CHANGES;
  }
}