Program: 191820
Project: 191820
Buggy source:
void dumpInternal(final PrintWriter pw,String[] args){
  int filterUid=-1;
  if (!ArrayUtils.isEmpty(args)) {
    try {
      filterUid=getContext().getPackageManager().getPackageUid(args[0],PackageManager.MATCH_UNINSTALLED_PACKAGES);
    }
 catch (    NameNotFoundException ignored) {
    }
  }
  final int filterUidFinal=filterUid;
  final long now=SystemClock.elapsedRealtime();
synchronized (mLock) {
    pw.println("String_Node_Str" + Arrays.toString(mStartedUsers));
    pw.println("String_Node_Str");
    if (mJobs.size() > 0) {
      mJobs.forEachJob(new JobStatusFunctor(){
        private int index=0;
        @Override public void process(        JobStatus job){
          pw.print("String_Node_Str");
          pw.print(index++);
          pw.print("String_Node_Str");
          pw.println(job.toShortString());
          if (filterUidFinal != -1 && job.getUid() != filterUidFinal && job.getSourceUid() != filterUidFinal) {
            return;
          }
          job.dump(pw,"String_Node_Str",true);
          pw.print("String_Node_Str");
          pw.print(mHandler.isReadyToBeExecutedLocked(job));
          pw.print("String_Node_Str");
          pw.print(job.isReady());
          pw.print("String_Node_Str");
          pw.print(mPendingJobs.contains(job));
          pw.print("String_Node_Str");
          pw.print(isCurrentlyActiveLocked(job));
          pw.print("String_Node_Str");
          pw.print(ArrayUtils.contains(mStartedUsers,job.getUserId()));
          pw.println("String_Node_Str");
        }
      }
);
    }
 else {
      pw.println("String_Node_Str");
    }
    for (int i=0; i < mControllers.size(); i++) {
      pw.println();
      mControllers.get(i).dumpControllerStateLocked(pw);
    }
    pw.println();
    pw.println("String_Node_Str");
    for (int i=0; i < mUidPriorityOverride.size(); i++) {
      pw.print("String_Node_Str");
      pw.print(UserHandle.formatUid(mUidPriorityOverride.keyAt(i)));
      pw.print("String_Node_Str");
      pw.println(mUidPriorityOverride.valueAt(i));
    }
    pw.println();
    mJobPackageTracker.dump(pw,"String_Node_Str");
    pw.println();
    pw.println("String_Node_Str");
    for (int i=0; i < mPendingJobs.size(); i++) {
      JobStatus job=mPendingJobs.get(i);
      pw.print("String_Node_Str");
      pw.print(i);
      pw.print("String_Node_Str");
      pw.println(job.toShortString());
      job.dump(pw,"String_Node_Str",false);
      int priority=evaluateJobPriorityLocked(job);
      if (priority != JobInfo.PRIORITY_DEFAULT) {
        pw.print("String_Node_Str");
        pw.println(priority);
      }
      pw.print("String_Node_Str");
      pw.println(job.getTag());
    }
    pw.println();
    pw.println("String_Node_Str");
    for (int i=0; i < mActiveServices.size(); i++) {
      JobServiceContext jsc=mActiveServices.get(i);
      pw.print("String_Node_Str");
      pw.print(i);
      pw.print("String_Node_Str");
      if (jsc.getRunningJob() == null) {
        pw.println("String_Node_Str");
        continue;
      }
 else {
        pw.println(jsc.getRunningJob().toShortString());
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(now - jsc.getExecutionStartTimeElapsed(),pw);
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(jsc.getTimeoutElapsed() - now,pw);
        pw.println();
        jsc.getRunningJob().dump(pw,"String_Node_Str",false);
        int priority=evaluateJobPriorityLocked(jsc.getRunningJob());
        if (priority != JobInfo.PRIORITY_DEFAULT) {
          pw.print("String_Node_Str");
          pw.println(priority);
        }
      }
    }
    pw.println();
    pw.print("String_Node_Str");
    pw.println(mReadyToRock);
    pw.print("String_Node_Str");
    pw.println(mReportedActive);
    pw.print("String_Node_Str");
    pw.println(mMaxActiveJobs);
  }
  pw.println();
}

Fixed version (ground truth):
void dumpInternal(final PrintWriter pw,String[] args){
  int filterUid=-1;
  if (!ArrayUtils.isEmpty(args)) {
    int opti=0;
    while (opti < args.length) {
      String arg=args[opti];
      if ("String_Node_Str".equals(arg)) {
        dumpHelp(pw);
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
      }
 else       if (arg.length() > 0 && arg.charAt(0) == '-') {
        pw.println("String_Node_Str" + arg);
        return;
      }
 else {
        break;
      }
      opti++;
    }
    if (opti < args.length) {
      String pkg=args[opti];
      try {
        filterUid=getContext().getPackageManager().getPackageUid(pkg,PackageManager.MATCH_UNINSTALLED_PACKAGES);
      }
 catch (      NameNotFoundException ignored) {
        pw.println("String_Node_Str" + pkg);
        return;
      }
    }
  }
  final int filterUidFinal=UserHandle.getAppId(filterUid);
  final long now=SystemClock.elapsedRealtime();
synchronized (mLock) {
    pw.println("String_Node_Str" + Arrays.toString(mStartedUsers));
    pw.println("String_Node_Str");
    if (mJobs.size() > 0) {
      mJobs.forEachJob(new JobStatusFunctor(){
        private int index=0;
        @Override public void process(        JobStatus job){
          pw.print("String_Node_Str");
          pw.print(index++);
          pw.print("String_Node_Str");
          pw.println(job.toShortString());
          if (!job.shouldDump(filterUidFinal)) {
            return;
          }
          job.dump(pw,"String_Node_Str",true);
          pw.print("String_Node_Str");
          pw.print(mHandler.isReadyToBeExecutedLocked(job));
          pw.print("String_Node_Str");
          pw.print(job.isReady());
          pw.print("String_Node_Str");
          pw.print(mPendingJobs.contains(job));
          pw.print("String_Node_Str");
          pw.print(isCurrentlyActiveLocked(job));
          pw.print("String_Node_Str");
          pw.print(ArrayUtils.contains(mStartedUsers,job.getUserId()));
          pw.println("String_Node_Str");
        }
      }
);
    }
 else {
      pw.println("String_Node_Str");
    }
    for (int i=0; i < mControllers.size(); i++) {
      pw.println();
      mControllers.get(i).dumpControllerStateLocked(pw,filterUidFinal);
    }
    pw.println();
    pw.println("String_Node_Str");
    for (int i=0; i < mUidPriorityOverride.size(); i++) {
      int uid=mUidPriorityOverride.keyAt(i);
      if (filterUidFinal == -1 || filterUidFinal == UserHandle.getAppId(uid)) {
        pw.print("String_Node_Str");
        pw.print(UserHandle.formatUid(uid));
        pw.print("String_Node_Str");
        pw.println(mUidPriorityOverride.valueAt(i));
      }
    }
    pw.println();
    mJobPackageTracker.dump(pw,"String_Node_Str",filterUidFinal);
    pw.println();
    if (mJobPackageTracker.dumpHistory(pw,"String_Node_Str",filterUidFinal)) {
      pw.println();
    }
    pw.println("String_Node_Str");
    for (int i=0; i < mPendingJobs.size(); i++) {
      JobStatus job=mPendingJobs.get(i);
      pw.print("String_Node_Str");
      pw.print(i);
      pw.print("String_Node_Str");
      pw.println(job.toShortString());
      job.dump(pw,"String_Node_Str",false);
      int priority=evaluateJobPriorityLocked(job);
      if (priority != JobInfo.PRIORITY_DEFAULT) {
        pw.print("String_Node_Str");
        pw.println(priority);
      }
      pw.print("String_Node_Str");
      pw.println(job.getTag());
    }
    pw.println();
    pw.println("String_Node_Str");
    for (int i=0; i < mActiveServices.size(); i++) {
      JobServiceContext jsc=mActiveServices.get(i);
      pw.print("String_Node_Str");
      pw.print(i);
      pw.print("String_Node_Str");
      if (jsc.getRunningJob() == null) {
        pw.println("String_Node_Str");
        continue;
      }
 else {
        pw.println(jsc.getRunningJob().toShortString());
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(now - jsc.getExecutionStartTimeElapsed(),pw);
        pw.print("String_Node_Str");
        TimeUtils.formatDuration(jsc.getTimeoutElapsed() - now,pw);
        pw.println();
        jsc.getRunningJob().dump(pw,"String_Node_Str",false);
        int priority=evaluateJobPriorityLocked(jsc.getRunningJob());
        if (priority != JobInfo.PRIORITY_DEFAULT) {
          pw.print("String_Node_Str");
          pw.println(priority);
        }
      }
    }
    if (filterUid == -1) {
      pw.println();
      pw.print("String_Node_Str");
      pw.println(mReadyToRock);
      pw.print("String_Node_Str");
      pw.println(mReportedActive);
      pw.print("String_Node_Str");
      pw.println(mMaxActiveJobs);
    }
  }
  pw.println();
}