code: public void requestPermanent(AddOnModel addOnModel, Identification source, boolean nonJava) {
          debug("requesting permanent for addon: " + addOnModel);
          boolean notUsing = isUsing.compareAndSet(false, true);
          if (!notUsing) {
              debug("already used by " + permanentAddOn);
              synchronized (permanentUserReadWriteLock) {
                  if (permanentAddOn != null && permanentAddOn.equals(addOnModel)) {
                      if (knownIdentification == null)
                          knownIdentification = source;
                      return;
                  } else {
                      endPermanent(permanentAddOn);
                      addAsPermanent(addOnModel, source, nonJava);
                  }
              }
          } else {
              addAsPermanent(addOnModel, source, nonJava);
          }
      }
docs: tries to register the AddonModel as permanent
  @param addOnModel the AddonModel to register
  @param source the Source which requested the usage
  @param nonJava true if it is not using java to play sounds