Bug 38782 TreeViewer add calls a refresh
Our implementation of TreeViewer.add is naive and can all a refresh of the entire tree. It should be more like TableViewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
removeTreeListener(l);
				}
			});
		}
	}
	/**
	 * Fires a tree expanded event.
	 * Only listeners registered at the time this method is called are notified.
	 *
	 * @param event the tree expansion event
	 *
	 * @see ITreeViewerListener#treeExpanded
	 */
	protected void fireTreeExpanded(final TreeExpansionEvent event) {
		Object[] listeners = treeListeners.getListeners();
		for (int i = 0; i < listeners.length; ++i) {
			final ITreeViewerListener l = (ITreeViewerListener) listeners[i];
			Platform.run(new SafeRunnable() {
				public void run() {
					l.treeExpanded(event);
				}
				public void handleException(Throwable e) {
					super.handleException(e);
					
					
					removeTreeListener(l);
				}
			});
		}