Added if-statement to launch(), stopping execution if fetchDecodeStage.getOpcode() returns -1; this signals that the SwingWorker thread has been cancelled and execution should stop.
Added statements to wait() blocks to stop execution if interrupted (which happens if SwingWorker.cancel() is called).