code: public void save() throws IOException
      {
          try
          {
              Future<Void> task = saveNB();
              task.get();
          }
          catch (ExecutionException e)
          {
              Throwable t = e.getCause();
  
              if (t instanceof IOException)
              {
                  throw (IOException)t;
              }
  
              throw new IOException(t);
          }
          catch (InterruptedException e)
          {
              throw new IOException("Saving of the properties file \"" + getFile().getAbsolutePath()
                                    + "\" was interrupted.");
          }
      }
docs: Save the current values of all properties.<br>
  <br>
  This method will block and wait for the properties to be saved. See
  {@link #saveNB()} for a non-blocking version.
  
  @throws IOException
  if there is an error while attempting to save the properties