I'm probably missing something, but couldn't you replace this line and the next one with:

    fFilteredChildren = Collections.unmodifiableList(sortedChildren);

It might also be as good idea to make sort() synchronize on a monitor object, since it is sorting the children. I don't think adding synchronization to sort() will hurt, since it's likely to be called before any threads are created, and the lock will be uncontested.