code: public ChangesItem extractSyncChanges()
     {
        ChangesItem syncChangesItem = new ChangesItem();
  
        Iterator<String> iter = calculatedChangedNodesSize.keySet().iterator();
        while (iter.hasNext() && !asyncUpdate.isEmpty())
        {
           String nodePath = iter.next();
  
           if (!asyncUpdate.contains(nodePath))
           {
              Long chanagedSize = calculatedChangedNodesSize.get(nodePath);
              syncChangesItem.calculatedChangedNodesSize.put(nodePath, chanagedSize);
              syncChangesItem.workspaceChangedSize += chanagedSize;
  
              this.asyncUpdate.remove(nodePath);
              this.workspaceChangedSize -= chanagedSize;
  
              iter.remove();
           }
        }
  
        return syncChangesItem;
     }
docs: Leave in {@link ChangesItem} only changes being apply asynchronously
  and return ones to apply instantly.