int sourceOffset = readOffset(myReadWindowBuffer);
long sourceOffset = readLongOffset(myReadWindowBuffer);
    public SVNDiffWindow readWindow(FSFile file) throws SVNException {        myReadWindowBuffer = clearBuffer(myReadWindowBuffer);        myReadWindowBuffer = ensureBufferSize(myReadWindowBuffer, 4096);        long position = 0;        try {            position = file.position();            file.read(myReadWindowBuffer);        } catch (IOException e) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.SVNDIFF_CORRUPT_WINDOW);            SVNErrorManager.error(err, e);        }        myReadWindowBuffer.flip();        int sourceOffset = readOffset(myReadWindowBuffer);        int sourceLength = readOffset(myReadWindowBuffer);        int targetLength = readOffset(myReadWindowBuffer);        int instructionsLength = readOffset(myReadWindowBuffer);        int dataLength = readOffset(myReadWindowBuffer);        if (sourceOffset < 0 || sourceLength < 0 || targetLength < 0 || instructionsLength < 0 || dataLength < 0) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.SVNDIFF_CORRUPT_WINDOW);            SVNErrorManager.error(err);        }        position += myReadWindowBuffer.position();        file.seek(position);        myReadWindowBuffer = clearBuffer(myReadWindowBuffer);        myReadWindowBuffer = ensureBufferSize(myReadWindowBuffer, instructionsLength + dataLength);        myReadWindowBuffer.limit(instructionsLength + dataLength);        try {            file.read(myReadWindowBuffer);        } catch (IOException e) {            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.SVNDIFF_CORRUPT_WINDOW);            SVNErrorManager.error(err, e);        }        myReadWindowBuffer.position(0);        myReadWindowBuffer.limit(myReadWindowBuffer.capacity());                SVNDiffWindow window = new SVNDiffWindow(sourceOffset, sourceLength, targetLength, instructionsLength, dataLength);        window.setData(myReadWindowBuffer);        return window;    }