code: protected void reinit(final Scope scope) throws InterruptedException, CouldNotPerformException {
  
          // to not reinit if shutdown is in progress!
          if (shutdownInitiated) {
              return;
          }
  
          final StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
          try {
              synchronized (maintainerLock) {
                  reinitStackTraces.add(stackTraceElement);
                  try {
                      if (reinitStackTraces.size() > 1) {
                          for (final StackTraceElement[] trace : reinitStackTraces) {
                              StackTracePrinter.printStackTrace("Duplicated reinit call by:", trace, logger, LogLevel.WARN);
                          }
                          throw new FatalImplementationErrorException("Duplicated reinit detected!", this);
                      }
                      logger.debug("Reinit " + this);
                      // temporally unlock this remove but save maintainer
                      final Object currentMaintainer = maintainer;
                      try {
                          maintainer = null;
  
                          // reinit remote
                          internalInit(scope, RSBSharedConnectionConfig.getParticipantConfig());
                      } catch (final CouldNotPerformException ex) {
                          throw new CouldNotPerformException("Could not reinit " + this + "!", ex);
                      } finally {
                          // restore maintainer
                          maintainer = currentMaintainer;
                      }
                  } finally {
                      reinitStackTraces.remove(stackTraceElement);
                  }
              }
          } catch (final CouldNotPerformException ex) {
              throw new CouldNotPerformException("Could not reinitialize " + this + "!", ex);
          }
      }
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.
  
  @throws InterruptedException     is thrown if the current thread was externally interrupted.
  @throws CouldNotPerformException is throws if the reinit has been failed.