public static void abort() throws IOException {
        CoordinatorGUI.textArea.append("One or more nodes did not respond or said it wasn't ready..." + "\n" + "\n");

        if (abortCounter >= maxAborts) {

            CoordinatorGUI.textArea.append("Reached maximum number of timeouts and rejections by nodes..." + "\n" + "\n");
            logError();

        } else {
            try {

                abortCounter++;
                int tempNodes = nodes;
                CoordinatorGUI.textArea.append("Rollback command to each node..." + "\n" + "\n");
                String dontDoIt = "abort";
                buf = dontDoIt.getBytes();
                packet = new DatagramPacket(buf, buf.length, group, 4446);
                socket.send(packet);
                if (timeout) {
                    nodes = responses.size();
                }
                getResponses();

                if (hasResponse) {
                    CoordinatorGUI.textArea.append("Abort responses:" + "\n" + "\n");
                    for (int j = 0; j < nodes; j++) {
                        CoordinatorGUI.textArea.append(" " + responses.get(j) + "\n" + "\n");

                    }
                    if (responses.size() < nodes) {
                        done = false;
                    }
                }
                nodes = tempNodes;
                if (timeout) {
                    hasResponse = false;
                }
                timeout = false;
            } catch (IOException ex) {
                System.err.println(ex);
            }
        }
    }