private void visitComponent(Component component) { int indexInFile = 0; CloseableIterator<BatchReport.CpdTextBlock> blocks = reportReader.readCpdTextBlocks(component.getReportAttributes().getRef()); try { while (blocks.hasNext()) { BatchReport.CpdTextBlock block = blocks.next(); dbClient .duplicationDao() .insert( session, new DuplicationUnitDto() .setHash(block.getHash()) .setStartLine(block.getStartLine()) .setEndLine(block.getEndLine()) .setIndexInFile(indexInFile) .setSnapshotId(dbIdsRepository.getSnapshotId(component)) .setProjectSnapshotId(projectSnapshotId)); indexInFile++; } } finally { blocks.close(); } }