public void disable() throws IOException {
       // This has to be synchronized or it can collide with the check in the task.
       synchronized (optOutLock) {
           // Check if the server owner has already set opt-out, if not, set it.
           if (!isOptOut()) {
               configuration.set("opt-out", true);
               configuration.save(configurationFile);
           }

           // Disable Task, if it is running
           if (task != null) {
               task.cancel();
               task = null;
           }
       }
   }