Here's what it looks like:

And here's my code:
import java.util.*; import java.io.*; public class ProcessSchedulingDemo { public static void main(String[] args) throws IOException { File file = new File("process-schedule.txt"); Scanner inputFile = new Scanner(file); ArrayList<Process> processes = new ArrayList<Process>(); // Skip past the first line, which is the column headers inputFile.nextLine(); while (inputFile.hasNext()) { int processID = Integer.parseInt(inputFile.next()); int timeUnitsRequired = Integer.parseInt(inputFile.next()); int priority = Integer.parseInt(inputFile.next()); int timeOfArrival = Integer.parseInt(inputFile.next()); // Create and add to process a new process based on the information given Process process = new Process(processID, timeUnitsRequired, priority, timeOfArrival); processes.add(process); } Scanner keyboard = new Scanner(System.in); System.out.print("How much time does the CPU hold onto each process? "); int holdTime = keyboard.nextInt(); if (holdTime <= 0) { while (holdTime <= 0) { System.out.print("Value must be greater than 0. Please input new value: "); holdTime = keyboard.nextInt(); } } Heap<Process> processHeap = new Heap<Process>(); // Holds a particular process being processed Process[] CPU = new Process[1]; CPU[0] = null; int turn = 1; int timeSlices = 0; do { // Check if the list of processes has processes that should be added at the current turn for (int i = processes.size() - 1; i >= 0; i--) { if (processes.get(i).getTimeOfArrival() == turn) { processHeap.add(processes.remove(i)); } } // Print current standing of the processHeap at the beginning of the turn processHeap.enumerate(); // If there currently isn't an item being processed by the CPU if (CPU[0] == null) { CPU[0] = processHeap.deleteMax(); timeSlices = holdTime; System.out.println("got to cpu setting"); } if (CPU[0].getTimeUnitsRequired() == 0 || timeSlices == 0) { if (CPU[0].getTimeUnitsRequired() > 0) { processHeap.add(CPU[0]); } CPU[0] = null; } else { CPU[0].setTimeUnitsRequired(CPU[0].getTimeUnitsRequired() - 1); timeSlices--; if (CPU[0].getTimeUnitsRequired() == 0 || timeSlices == 0) { if (CPU[0].getTimeUnitsRequired() > 0) { processHeap.add(CPU[0]); } CPU[0] = null; } } if (CPU[0] != null) { System.out.println("-- STATE OF CPU --"); System.out.println("[" + CPU[0].getProcessID() + ", " + CPU[0].getTimeUnitsRequired() + ", " + CPU[0].getPriority() + "]\n"); } turn++; } while (processes.size() != 0 && processHeap.size() != 0); } } What on earth is causing it? EVERY time I save it pops up. Argh. (Using Eclipse)