code: private void submitRevisions(final List<DocumentChange> changes) {
          synchronized (changesLock) {
              try {
                  java.net.URI remoteUri = remote.toURI();
                  for (DocumentChange change : changes) {
                      // Skip revisions that originally came from the database I'm syncing to:
                      URL source = change.getSource();
                      if (source != null && source.toURI().equals(remoteUri))
                          continue;
                      RevisionInternal rev = change.getAddedRevision();
                      if (rev == null)
                          continue;
                      if (getLocalDatabase().runFilter(filter, filterParams, rev)) {
                          if (doneBeginReplicating) {
                              pauseOrResume();
                              waitIfPaused();
                              // if not running state anymore, exit from loop.
                              if (!isRunning())
                                  break;
                              RevisionInternal nuRev = rev.copyWithoutBody();
                              addToInbox(nuRev);
                          } else {
                              RevisionInternal nuRev = rev.copyWithoutBody();
                              queueChanges.add(nuRev);
                          }
                      }
                  }
              } catch (java.net.URISyntaxException uriException) {
                  // Not possible since it would not be an active replicator.
                  // However, until we refactor everything to use java.net,
                  // I'm not sure we have a choice but to swallow this.
                  Log.e(TAG, "Active replicator found with invalid URI", uriException);
              }
          }
      }
docs: Submit revisions into inbox for changes from Database.ChangeListener.change(ChangeEvent)