Program: 195486
Project: 195486
Buggy source:
public void update(){
  if (DEBUG)   Slog.v(TAG,"String_Node_Str" + this);
  final long nowUptime=SystemClock.uptimeMillis();
  final long nowRealtime=SystemClock.elapsedRealtime();
  final long[] sysCpu=mSystemCpuData;
  if (Process.readProcFile("String_Node_Str",SYSTEM_CPU_FORMAT,null,sysCpu,null)) {
    final long usertime=sysCpu[0] + sysCpu[1];
    final long systemtime=sysCpu[2];
    final long idletime=sysCpu[3];
    final long iowaittime=sysCpu[4];
    final long irqtime=sysCpu[5];
    final long softirqtime=sysCpu[6];
    if (true || (usertime >= mBaseUserTime && systemtime >= mBaseSystemTime && iowaittime >= mBaseIoWaitTime && irqtime >= mBaseIrqTime && softirqtime >= mBaseSoftIrqTime && idletime >= mBaseIdleTime)) {
      mRelUserTime=(int)(usertime - mBaseUserTime);
      mRelSystemTime=(int)(systemtime - mBaseSystemTime);
      mRelIoWaitTime=(int)(iowaittime - mBaseIoWaitTime);
      mRelIrqTime=(int)(irqtime - mBaseIrqTime);
      mRelSoftIrqTime=(int)(softirqtime - mBaseSoftIrqTime);
      mRelIdleTime=(int)(idletime - mBaseIdleTime);
      mRelStatsAreGood=true;
      if (DEBUG) {
        Slog.i("String_Node_Str","String_Node_Str" + sysCpu[0] + "String_Node_Str"+ sysCpu[1]+ "String_Node_Str"+ sysCpu[2]+ "String_Node_Str"+ sysCpu[3]+ "String_Node_Str"+ sysCpu[4]+ "String_Node_Str"+ sysCpu[5]+ "String_Node_Str"+ sysCpu[6]);
        Slog.i("String_Node_Str","String_Node_Str" + mRelUserTime + "String_Node_Str"+ mRelSystemTime+ "String_Node_Str"+ mRelIdleTime+ "String_Node_Str"+ mRelIrqTime);
      }
      mBaseUserTime=usertime;
      mBaseSystemTime=systemtime;
      mBaseIoWaitTime=iowaittime;
      mBaseIrqTime=irqtime;
      mBaseSoftIrqTime=softirqtime;
      mBaseIdleTime=idletime;
    }
 else {
      mRelUserTime=0;
      mRelSystemTime=0;
      mRelIoWaitTime=0;
      mRelIrqTime=0;
      mRelSoftIrqTime=0;
      mRelIdleTime=0;
      mRelStatsAreGood=false;
      Slog.w(TAG,"String_Node_Str");
      return;
    }
  }
  mLastSampleTime=mCurrentSampleTime;
  mCurrentSampleTime=nowUptime;
  mLastSampleRealTime=mCurrentSampleRealTime;
  mCurrentSampleRealTime=nowRealtime;
  final StrictMode.ThreadPolicy savedPolicy=StrictMode.allowThreadDiskReads();
  try {
    mCurPids=collectStats("String_Node_Str",-1,mFirst,mCurPids,mProcStats);
  }
  finally {
    StrictMode.setThreadPolicy(savedPolicy);
  }
  final float[] loadAverages=mLoadAverageData;
  if (Process.readProcFile("String_Node_Str",LOAD_AVERAGE_FORMAT,null,null,loadAverages)) {
    float load1=loadAverages[0];
    float load5=loadAverages[1];
    float load15=loadAverages[2];
    if (load1 != mLoad1 || load5 != mLoad5 || load15 != mLoad15) {
      mLoad1=load1;
      mLoad5=load5;
      mLoad15=load15;
      onLoadChanged(load1,load5,load15);
    }
  }
  if (DEBUG)   Slog.i(TAG,"String_Node_Str" + (SystemClock.uptimeMillis() - mCurrentSampleTime));
  mWorkingProcsSorted=false;
  mFirst=false;
}

Fixed version (ground truth):
public void update(){
  if (DEBUG)   Slog.v(TAG,"String_Node_Str" + this);
  final long nowUptime=SystemClock.uptimeMillis();
  final long nowRealtime=SystemClock.elapsedRealtime();
  final long[] sysCpu=mSystemCpuData;
  if (Process.readProcFile("String_Node_Str",SYSTEM_CPU_FORMAT,null,sysCpu,null)) {
    final long usertime=(sysCpu[0] + sysCpu[1]) * mJiffyMillis;
    final long systemtime=sysCpu[2] * mJiffyMillis;
    final long idletime=sysCpu[3] * mJiffyMillis;
    final long iowaittime=sysCpu[4] * mJiffyMillis;
    final long irqtime=sysCpu[5] * mJiffyMillis;
    final long softirqtime=sysCpu[6] * mJiffyMillis;
    if (true || (usertime >= mBaseUserTime && systemtime >= mBaseSystemTime && iowaittime >= mBaseIoWaitTime && irqtime >= mBaseIrqTime && softirqtime >= mBaseSoftIrqTime && idletime >= mBaseIdleTime)) {
      mRelUserTime=(int)(usertime - mBaseUserTime);
      mRelSystemTime=(int)(systemtime - mBaseSystemTime);
      mRelIoWaitTime=(int)(iowaittime - mBaseIoWaitTime);
      mRelIrqTime=(int)(irqtime - mBaseIrqTime);
      mRelSoftIrqTime=(int)(softirqtime - mBaseSoftIrqTime);
      mRelIdleTime=(int)(idletime - mBaseIdleTime);
      mRelStatsAreGood=true;
      if (DEBUG) {
        Slog.i("String_Node_Str","String_Node_Str" + (sysCpu[0] * mJiffyMillis) + "String_Node_Str"+ (sysCpu[1] * mJiffyMillis)+ "String_Node_Str"+ (sysCpu[2] * mJiffyMillis)+ "String_Node_Str"+ (sysCpu[3] * mJiffyMillis)+ "String_Node_Str"+ (sysCpu[4] * mJiffyMillis)+ "String_Node_Str"+ (sysCpu[5] * mJiffyMillis)+ "String_Node_Str"+ (sysCpu[6] * mJiffyMillis));
        Slog.i("String_Node_Str","String_Node_Str" + mRelUserTime + "String_Node_Str"+ mRelSystemTime+ "String_Node_Str"+ mRelIdleTime+ "String_Node_Str"+ mRelIrqTime);
      }
      mBaseUserTime=usertime;
      mBaseSystemTime=systemtime;
      mBaseIoWaitTime=iowaittime;
      mBaseIrqTime=irqtime;
      mBaseSoftIrqTime=softirqtime;
      mBaseIdleTime=idletime;
    }
 else {
      mRelUserTime=0;
      mRelSystemTime=0;
      mRelIoWaitTime=0;
      mRelIrqTime=0;
      mRelSoftIrqTime=0;
      mRelIdleTime=0;
      mRelStatsAreGood=false;
      Slog.w(TAG,"String_Node_Str");
      return;
    }
  }
  mLastSampleTime=mCurrentSampleTime;
  mCurrentSampleTime=nowUptime;
  mLastSampleRealTime=mCurrentSampleRealTime;
  mCurrentSampleRealTime=nowRealtime;
  final StrictMode.ThreadPolicy savedPolicy=StrictMode.allowThreadDiskReads();
  try {
    mCurPids=collectStats("String_Node_Str",-1,mFirst,mCurPids,mProcStats);
  }
  finally {
    StrictMode.setThreadPolicy(savedPolicy);
  }
  final float[] loadAverages=mLoadAverageData;
  if (Process.readProcFile("String_Node_Str",LOAD_AVERAGE_FORMAT,null,null,loadAverages)) {
    float load1=loadAverages[0];
    float load5=loadAverages[1];
    float load15=loadAverages[2];
    if (load1 != mLoad1 || load5 != mLoad5 || load15 != mLoad15) {
      mLoad1=load1;
      mLoad5=load5;
      mLoad15=load15;
      onLoadChanged(load1,load5,load15);
    }
  }
  if (DEBUG)   Slog.i(TAG,"String_Node_Str" + (SystemClock.uptimeMillis() - mCurrentSampleTime));
  mWorkingProcsSorted=false;
  mFirst=false;
}