Program: 191808
Project: 191808
Buggy source:
@Override public void dumpControllerStateLocked(PrintWriter pw){
  pw.println("String_Node_Str");
  boolean printed=false;
  Iterator<JobStatus> it=mTrackedTasks.iterator();
  while (it.hasNext()) {
    if (!printed) {
      pw.print("String_Node_Str");
      printed=true;
    }
 else {
      pw.print("String_Node_Str");
    }
    pw.print(System.identityHashCode(it.next()));
  }
  if (printed) {
    pw.println();
  }
  int N=mObservers.size();
  if (N > 0) {
    pw.println("String_Node_Str");
    for (int i=0; i < N; i++) {
      ObserverInstance obs=mObservers.valueAt(i);
      pw.print("String_Node_Str");
      pw.print(mObservers.keyAt(i));
      pw.print("String_Node_Str");
      pw.print(System.identityHashCode(obs));
      pw.println("String_Node_Str");
      pw.println("String_Node_Str");
      int M=obs.mJobs.size();
      for (int j=0; j < M; j++) {
        JobInstance inst=obs.mJobs.valueAt(j);
        pw.print("String_Node_Str");
        pw.print(System.identityHashCode(inst.mJobStatus));
        if (inst.mChangedAuthorities != null) {
          pw.println("String_Node_Str");
          if (inst.mTriggerPending) {
            pw.print("String_Node_Str");
            TimeUtils.formatDuration(inst.mJobStatus.getTriggerContentUpdateDelay(),pw);
            pw.print("String_Node_Str");
            TimeUtils.formatDuration(inst.mJobStatus.getTriggerContentMaxDelay(),pw);
            pw.println();
          }
          pw.println("String_Node_Str");
          for (int k=0; k < inst.mChangedAuthorities.size(); k++) {
            pw.print("String_Node_Str");
            pw.println(inst.mChangedAuthorities.valueAt(k));
          }
          if (inst.mChangedUris != null) {
            pw.println("String_Node_Str");
            for (int k=0; k < inst.mChangedUris.size(); k++) {
              pw.print("String_Node_Str");
              pw.println(inst.mChangedUris.valueAt(k));
            }
          }
        }
 else {
          pw.println();
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override public void dumpControllerStateLocked(PrintWriter pw,int filterUid){
  pw.println("String_Node_Str");
  boolean printed=false;
  Iterator<JobStatus> it=mTrackedTasks.iterator();
  while (it.hasNext()) {
    JobStatus js=it.next();
    if (!js.shouldDump(filterUid)) {
      continue;
    }
    if (!printed) {
      pw.print("String_Node_Str");
      printed=true;
    }
 else {
      pw.print("String_Node_Str");
    }
    pw.print(System.identityHashCode(it.next()));
  }
  if (printed) {
    pw.println();
  }
  int N=mObservers.size();
  if (N > 0) {
    pw.println("String_Node_Str");
    for (int i=0; i < N; i++) {
      ObserverInstance obs=mObservers.valueAt(i);
      int M=obs.mJobs.size();
      boolean shouldDump=false;
      for (int j=0; j < M; j++) {
        JobInstance inst=obs.mJobs.valueAt(j);
        if (inst.mJobStatus.shouldDump(filterUid)) {
          shouldDump=true;
          break;
        }
      }
      if (!shouldDump) {
        continue;
      }
      pw.print("String_Node_Str");
      pw.print(mObservers.keyAt(i));
      pw.print("String_Node_Str");
      pw.print(System.identityHashCode(obs));
      pw.println("String_Node_Str");
      pw.println("String_Node_Str");
      for (int j=0; j < M; j++) {
        JobInstance inst=obs.mJobs.valueAt(j);
        pw.print("String_Node_Str");
        pw.print(System.identityHashCode(inst.mJobStatus));
        if (inst.mChangedAuthorities != null) {
          pw.println("String_Node_Str");
          if (inst.mTriggerPending) {
            pw.print("String_Node_Str");
            TimeUtils.formatDuration(inst.mJobStatus.getTriggerContentUpdateDelay(),pw);
            pw.print("String_Node_Str");
            TimeUtils.formatDuration(inst.mJobStatus.getTriggerContentMaxDelay(),pw);
            pw.println();
          }
          pw.println("String_Node_Str");
          for (int k=0; k < inst.mChangedAuthorities.size(); k++) {
            pw.print("String_Node_Str");
            pw.println(inst.mChangedAuthorities.valueAt(k));
          }
          if (inst.mChangedUris != null) {
            pw.println("String_Node_Str");
            for (int k=0; k < inst.mChangedUris.size(); k++) {
              pw.print("String_Node_Str");
              pw.println(inst.mChangedUris.valueAt(k));
            }
          }
        }
 else {
          pw.println();
        }
      }
    }
  }
}