if (getAttribute(NTFSAttribute.Types.ATTRIBUTE_LIST) != null) {
final AttributeListAttribute attributeList = (AttributeListAttribute) getAttribute(NTFSAttribute.Types.ATTRIBUTE_LIST); if (attributeList != null) {
    public NTFSAttribute getAttribute(int attrTypeID) {        log.debug("getAttribute(0x" + NumberUtils.hex(attrTypeID, 4) + ")");        int offset = this.getFirtAttributeOffset();        while (true) {            final int type = getUInt32AsInt(offset + 0x00);            if (type == 0xFFFFFFFF) {                // The end of the attribute list                break;            } else if (type == attrTypeID) {                return NTFSAttribute.getAttribute(this, offset);            } else {                // Skip and go to the next                final int attrLength = getUInt32AsInt(offset + 0x04);                offset += attrLength;            }        }        if (attrTypeID != NTFSAttribute.Types.ATTRIBUTE_LIST) {            if (getAttribute(NTFSAttribute.Types.ATTRIBUTE_LIST) != null) {                log.info("Has $ATTRIBUTE_LIST attribute");            }        }        log.info("getAttribute(0x" + NumberUtils.hex(attrTypeID, 4)                + ") not found");        return null;    }