do {
if (attr.isResident()) {
throw new IOException("Resident attribute should be by itself, file record = " + this);
}
final NTFSNonResidentAttribute nresData = (NTFSNonResidentAttribute) attr;
readClusters += nresData.readVCN(clusterWithinNresData, tmp, 0, nrClusters);
if (readClusters == nrClusters) {
// Already done.
break;
}
// When there are multiple attributes, the data in each one claims to start at VCN 0.
// Clearly this is not the case, so we need to offset when we read.
clusterWithinNresData -= nresData.getNumberOfVCNs();
attr = dataAttrs.next();
} while (attr != null);
if (log.isDebugEnabled()) {
log.debug("readData: read " + readClusters + " from non-resident attributes");