public void handleProperty(String url, SVNPropertyData property) throws SVNException {
public void handleProperty(SVNURL url, SVNPropertyData property) throws SVNException { } public void handleProperty(long revision, SVNPropertyData property) throws SVNException {
    public final void run(final PrintStream out, PrintStream err) throws SVNException {        final String propertyName = getCommandLine().getPathAt(0);        String propertyValue = getCommandLine().getPathAt(1);        final boolean recursive = getCommandLine().hasArgument(SVNArgument.RECURSIVE);        boolean force = getCommandLine().hasArgument(SVNArgument.FORCE);        boolean revProps = getCommandLine().hasArgument(SVNArgument.REV_PROP);        int pathIndex = 2;        if (getCommandLine().hasArgument(SVNArgument.FILE)) {            File file = new File((String) getCommandLine().getArgumentValue(SVNArgument.FILE));            ByteArrayOutputStream os = new ByteArrayOutputStream();            FileInputStream is = null;            try {                is = new FileInputStream(file);                while(true) {                    int r = is.read();                    if (r < 0) {                        break;                    }                    os.write(r);                }            } catch (IOException e) {                throw new SVNException(e);            } finally {                try {                    os.close();                } catch (IOException e1) {                }                if (is != null) {                    try {                        is.close();                    } catch (IOException e) {                    }                }            }            propertyValue = os.toString();            pathIndex = 1;        }        SVNWCClient wcClient = getClientManager().getWCClient();        if (revProps) {            SVNRevision revision = SVNRevision.UNDEFINED;            if (getCommandLine().hasArgument(SVNArgument.REVISION)) {                revision = SVNRevision.parse((String) getCommandLine().getArgumentValue(SVNArgument.REVISION));            }            if (getCommandLine().hasURLs()) {                wcClient.doSetRevisionProperty(getCommandLine().getURL(0), getCommandLine().getPegRevision(0),                        revision, propertyName, propertyValue, force, new ISVNPropertyHandler() {                            public void handleProperty(File path, SVNPropertyData property) throws SVNException {                            }                            public void handleProperty(String url, SVNPropertyData property) throws SVNException {                                out.println("Property '" + propertyName +"' set on repository revision " + url);                            }                });            } else {                File tgt = new File(".");                if (getCommandLine().getPathCount() > 2) {                    tgt = new File(getCommandLine().getPathAt(2));                }                wcClient.doSetRevisionProperty(tgt, revision, propertyName, propertyValue, force, new ISVNPropertyHandler() {                            public void handleProperty(File path, SVNPropertyData property) throws SVNException {                            }                            public void handleProperty(String url, SVNPropertyData property) throws SVNException {                                out.println("Property '" + propertyName +"' set on repository revision " + url);                            }                });            }        } else {            for (int i = pathIndex; i < getCommandLine().getPathCount(); i++) {                final String absolutePath = getCommandLine().getPathAt(i);                if (!recursive) {                    wcClient.doSetProperty(new File(absolutePath), propertyName, propertyValue, force, recursive, new ISVNPropertyHandler() {                        public void handleProperty(File path, SVNPropertyData property) throws SVNException {                            out.println("Property '" + propertyName + "' set on '" + SVNFormatUtil.formatPath(path) + "'");                        }                        public void handleProperty(String url, SVNPropertyData property) throws SVNException {                        }                    });                } else {                    final boolean wasSet[] = new boolean[] {false};                    wcClient.doSetProperty(new File(absolutePath), propertyName, propertyValue, force, recursive, new ISVNPropertyHandler() {                        public void handleProperty(File path, SVNPropertyData property) throws SVNException {                           wasSet[0] = true;                        }                        public void handleProperty(String url, SVNPropertyData property) throws SVNException {                        }                    });                    if (wasSet[0]) {                        out.println("Property '" + propertyName + "' set (recursively) on '" + absolutePath + "'");                    }                }            }            if (getCommandLine().getPathCount() == 2 && getCommandLine().hasURLs()) {                err.println("Propset is not supported for target '" + getCommandLine().getURL(0) + "'");                System.exit(1);            }        }    }