return children.toArray(new Object[children.size()]);
if (newSort || sortedChildNodes == null || speziellSort != sort || speziellIsAscent != isAscent) { return sort( (Object[]) children.toArray(new Object[children.size()])); } else { return sortedChildNodes; }
    public Object[] getChildren() {        if (downloads == null) {            return null;        }        DownloadDO downloadDO;        synchronized (this) {            Iterator it = downloads.values().iterator();            ArrayList oldNodes = new ArrayList();            for (int i = 0; i < children.size(); i++) {                oldNodes.add(children.get(i));            }            while (it.hasNext()) {                downloadDO = (DownloadDO) it.next();                if (downloadDO.getTargetDirectory().compareToIgnoreCase(                    verzeichnis) == 0) {                    boolean found = false;                    for (int i = 0; i < children.size(); i++) {                        if ( ( (DownloadMainNode) children.get(i)).                            getDownloadDO().getId()                            == downloadDO.getId()) {                            oldNodes.remove(children.get(i));                            found = true;                            break;                        }                    }                    if (!found) {                        children.add(new DownloadMainNode(downloadDO));                    }                }            }            for (int i = 0; i < oldNodes.size(); i++) {                children.remove(oldNodes.get(i));            }        }        return children.toArray(new Object[children.size()]);    }