cluster = getUInt8(1 + lenlen);
cluster = getInt8(1 + lenlen);
    public DataRun(NTFSNonResidentAttribute attr, int offset, long vcn,            long previousLCN) {        super(attr, offset);        // read first byte in type attribute        this.type = getUInt8(0);        final int lenlen = type & 0xF;        final int clusterlen = type >>> 4;        this.size = lenlen + clusterlen + 1;        this.vcn = vcn;        switch (lenlen) {        case 0x01:            length = getUInt8(1);            break;        case 0x02:            length = getUInt16(1);            break;        case 0x03:            length = getUInt24(1);            break;        case 0x04:            length = getUInt32AsInt(1);            break;        default:            throw new IllegalArgumentException("Invalid length length "                    + lenlen);        }        final int cluster;        switch (clusterlen) {        case 0x01:            cluster = getUInt8(1 + lenlen);            break;        case 0x02:            cluster = getUInt16(1 + lenlen);            break;        case 0x03:            cluster = getUInt24(1 + lenlen);            break;        case 0x04:            cluster = getUInt32AsInt(1 + lenlen);            break;        default:            throw new IllegalArgumentException("Unknown cluster length "                    + clusterlen);        }        this.cluster = cluster + previousLCN;    }