String line = execCommand(commandLine);
String line = null; try { if (file.canRead()) { line = execCommand(commandLine); } } catch (Throwable th) { SVNDebugLog.getDefaultLog().info(th); }
    public static boolean isExecutable(File file) {        if (isWindows) {            return false;        }        String[] commandLine = new String[] { LS_COMMAND, "-ln",                file.getAbsolutePath() };        String line = execCommand(commandLine);        if (line == null || line.indexOf(' ') < 0) {            return false;        }        int index = 0;        String mod = null;        String fuid = null;        String fgid = null;        for (StringTokenizer tokens = new StringTokenizer(line, " \t"); tokens                .hasMoreTokens();) {            String token = tokens.nextToken();            if (index == 0) {                mod = token;            } else if (index == 2) {                fuid = token;            } else if (index == 3) {                fgid = token;            } else if (index > 3) {                break;            }            index++;        }        if (mod == null) {            return false;        }        if (getCurrentUser().equals(fuid)) {            return mod.toLowerCase().indexOf('x') >= 0                    && mod.toLowerCase().indexOf('x') < 4;        } else if (getCurrentGroup().equals(fgid)) {            return mod.toLowerCase().indexOf('x', 4) >= 4                    && mod.toLowerCase().indexOf('x', 4) < 7;        } else {            return mod.toLowerCase().indexOf('x', 7) >= 7;        }    }