code: @Override
      public List<ENTRY> removeAll(Collection<ENTRY> entries) throws MultiException, InvalidStateException {
          final List<ENTRY> removedEntries = new ArrayList<>();
          ExceptionStack exceptionStack = null;
          registryLock.writeLock().lock();
          try {
              for (ENTRY entry : entries) {
  
                  // shutdown check is needed because this is not a atomic transaction.
                  if (shutdownInitiated) {
                      throw new InvalidStateException("Entry removal canceled because registry is shutting down!");
                  }
  
                  try {
                      if (contains(entry)) {
                          removedEntries.add(remove(entry));
                      }
                  } catch (CouldNotPerformException ex) {
                      exceptionStack = MultiException.push(this, ex, exceptionStack);
                  }
              }
              MultiException.checkAndThrow(() -> "Could not remove all entries!", exceptionStack);
          } finally {
              registryLock.writeLock().unlock();
          }
          return removedEntries;
      }
docs: {@inheritDoc}
  
  @param entries {@inheritDoc}
  
  @return {@inheritDoc}
  
  @throws MultiException        {@inheritDoc}
  @throws InvalidStateException {@inheritDoc}