final boolean[] isRoot = new boolean[] {false};
final boolean[] isRoot = new boolean[] {true};
    public static boolean isWorkingCopyRoot(final File versionedDir, final boolean considerExternalAsRoot) {        if (versionedDir == null || !SVNWCAccess.isVersionedDirectory(versionedDir)) {            // unversioned.            return false;        }        // call status of parent instead:        if (versionedDir.getParentFile() == null) {            return true;        }        SVNStatusClient stClient = new SVNStatusClient(null, null);        final boolean[] isRoot = new boolean[] {false};        try {            stClient.doStatus(versionedDir.getParentFile(), false, false, true, true, new ISVNStatusHandler() {                public void handleStatus(SVNStatus status) {                    if (!isRoot[0] && versionedDir.equals(status.getFile())) {                        if (status.getContentsStatus() == SVNStatusType.STATUS_IGNORED ||                                status.getContentsStatus() == SVNStatusType.STATUS_UNVERSIONED ||                                status.getContentsStatus() == SVNStatusType.STATUS_EXTERNAL) {                            if (status.getContentsStatus() == SVNStatusType.STATUS_EXTERNAL && !considerExternalAsRoot) {                                return;                            }                            isRoot[0] = true;                        }                    }                }            });        } catch (SVNException e) {            return true;        }        return isRoot[0];    }