SVNErrorMessage error = readError(request, path);
SVNErrorMessage error = readError(request, path, context);
    public void dispatch(String request, String path, Map header, int ok1, int ok2) throws IOException {        int length = 0;        if (myRequestBody != null) {            length = myRequestBody.length;        } else if (myRequestStream instanceof ByteArrayInputStream) {            length = ((ByteArrayInputStream) myRequestStream).available();        } else if (myRequestStream instanceof IMeasurable) {            length = (int) ((IMeasurable) myRequestStream).getLength();        }        StringBuffer headerText = composeHTTPHeader(request, path, header, length);        myConnection.sendData(headerText.toString().getBytes());        if (myRequestBody != null && length > 0) {            myConnection.sendData(myRequestBody);        } else if (myRequestStream != null && length > 0) {            myConnection.sendData(myRequestStream, length);        }        myConnection.readHeader(this);                // check status.        if (myStatus.getCode() == HttpURLConnection.HTTP_MOVED_PERM ||                 myStatus.getCode() == HttpURLConnection.HTTP_MOVED_TEMP ||                myStatus.getCode() == HttpURLConnection.HTTP_FORBIDDEN ||                myStatus.getCode() == HttpURLConnection.HTTP_UNAUTHORIZED) {            // these errors are always processed by the caller, to allow retry.            myErrorMessage = createDefaultErrorMessage(myConnection.getHost(), myStatus, "{0} of ''{1}''", new Object[] {request, path});            myConnection.skipData(this);            return;        }        boolean notExpected = false;                int expectedCode = "PROPFIND".equals(request) ? 207 : 200;        if (ok1 >= 0) {            if (ok1 == 0) {                ok1 = "PROPFIND".equals(request) ? 207 : 200;            }            if (ok2 <= 0) {                ok2 = ok1;            }            notExpected = !(myStatus.getCode() == ok1 || myStatus.getCode() == ok2);         }        if (notExpected) {            // unexpected response code.            myErrorMessage = readError(request, path);        } else if (myStatus.getCode() == HttpURLConnection.HTTP_NO_CONTENT) {            myConnection.skipData(this);        } else if (myStatus.getCode() >= 300 || myStatus.getCode() != expectedCode) {            SVNErrorMessage error = readError(request, path);            myStatus.setError(error);        } else if (myResponseStream != null) {            myErrorMessage = myConnection.readData(this, myResponseStream);        } else if (myResponseHandler != null) {                        myErrorMessage = myConnection.readData(this, request, path, myResponseHandler);        } else {            myConnection.skipData(this);        }    }