@SuppressWarnings("unchecked")
	private void setUnderlyingChildren(@Nonnull ObservableList<TreeItem<T>> list) {
		Field childrenListenerField = CHILDREN_LISTENER_FIELD;
		if (childrenListenerField == null) {
			// See static block below.
			return;
		}
		try {
			// Add our change listener to the passed list.
			list.addListener((ListChangeListener<? super TreeItem<T>>) childrenListenerField.get(this));

			// Directly set "TreeItem.children"
			CHILDREN_FIELD.set(this, list);
		} catch (ReflectiveOperationException ex) {
			logger.error("Failed to update filterable children", ex);
		}
	}
Use reflection to directly set the underlying {@link TreeItem#children} field.
The javadoc for that field literally says:
<pre>
 It is important that interactions with this list go directly into the
 children property, rather than via getChildren(), as this may be
 a very expensive call.
</pre>
This will additionally add the current tree-item's {@link TreeItem#childrenListener} to
the given list's listeners.

@param list
		Children list.
recaf-ui/src/main/java/software/coley/recaf/ui/control/tree/FilterableTreeItem.java