docs: private void swapWithNewProcessor(
              final CatalogContext catalogContext,
              ExportGeneration generation,
              CatalogMap<Connector> connectors,
              List<Pair<Integer, Integer>> partitions,
              Map<String, Pair<Properties, Set<String>>> config)
      {
          ExportDataProcessor oldProcessor = m_processor.get();
          if (exportLog.isDebugEnabled()) {
              exportLog.debug("Shutdown guestprocessor");
          }
          oldProcessor.shutdown();
          if (exportLog.isDebugEnabled()) {
              exportLog.debug("Processor shutdown completed, install new export processor");
          }
          generation.unacceptMastership();
          if (exportLog.isDebugEnabled()) {
              exportLog.debug("Existing export datasources unassigned.");
          }
          try {
              ExportDataProcessor newProcessor = getNewProcessorWithProcessConfigSet(config);
              //Load any missing tables.
              generation.initializeGenerationFromCatalog(catalogContext, connectors, newProcessor,
                      m_hostId, partitions, true);
              for (Pair<Integer, Integer> partition : partitions) {
                  generation.updateAckMailboxes(partition.getFirst(), null);
              }
              //We create processor even if we dont have any streams.
              newProcessor.setExportGeneration(generation);
              if (m_startPolling && !config.isEmpty()) {
                  newProcessor.startPolling();
              }
              m_processor.getAndSet(newProcessor);
              newProcessor.readyForData();
          } catch (Exception crash) {
              VoltDB.crashLocalVoltDB("Error creating next export processor", true, crash);
          }
  
          for (int partitionId : m_masterOfPartitions) {
              generation.acceptMastership(partitionId);
          }
      }