code: public void reinit(final Scope scope, final Object maintainer) throws InterruptedException, CouldNotPerformException, VerificationFailedException {
          if (this.maintainer.equals(maintainer)) {
              reinit(scope);
          } else {
              throw new VerificationFailedException("Manipulation of " + this + "is not valid using lock[" + maintainerLock + "]");
          }
      }
docs: Method reinitialize this remote. If the remote was previously active the activation state will be recovered.
  This method can be used in case of a broken connection or if the participant config has been changed.
  <p>
  Note: After reinit the data remains the same but a new sync task is created. So to make sure to have new data
  it is necessary to call {@code requestData.get()}.
  
  @param scope      the new scope to configure.
  @param maintainer the current maintainer of this remote
  
  @throws InterruptedException        is thrown if the current thread was externally interrupted.
  @throws CouldNotPerformException    is throws if the reinit has been failed.
  @throws VerificationFailedException is thrown if the given maintainerLock does not match the current maintainer