code: public void setLabel(String label) throws IllegalArgumentException,
              UnsupportedOperationException, IOException {
  
          checkRoot();
  
          if (label != null && label.length() > MAX_LABEL_LENGTH) throw new
                  IllegalArgumentException("label too long");
  
          if (this.volumeLabel != null) {
              if (label == null) {
                  changeSize(getSize() - 1);
                  this.volumeLabel = null;
              } else {
                  ShortName.checkValidChars(label.getBytes(ShortName.ASCII));
                  this.volumeLabel = label;
              }
          } else {
              if (label != null) {
                  changeSize(getSize() + 1);
                  ShortName.checkValidChars(label.getBytes(ShortName.ASCII));
                  this.volumeLabel = label;
              }
          }
          
          this.dirty = true;
      }
docs: Sets the volume label that is stored in this directory. Setting the
  volume label is supported on the root directory only.
  
  @param label the new volume label
  @throws IllegalArgumentException if the label is too long
  @throws UnsupportedOperationException if this is not a root directory
  @see #isRoot()