private List<MLDataFormats.MessageRange> buildIndividualDeletedMessageRanges() { lock.readLock().lock(); try { if (individualDeletedMessages.isEmpty()) { return Collections.emptyList(); } MLDataFormats.NestedPositionInfo.Builder nestedPositionBuilder = MLDataFormats.NestedPositionInfo .newBuilder(); MLDataFormats.MessageRange.Builder messageRangeBuilder = MLDataFormats.MessageRange.newBuilder(); return individualDeletedMessages.asRanges().stream().limit(config.getMaxUnackedRangesToPersist()) .map(positionRange -> { PositionImpl p = positionRange.lowerEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setLowerEndpoint(nestedPositionBuilder.build()); p = positionRange.upperEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setUpperEndpoint(nestedPositionBuilder.build()); return messageRangeBuilder.build(); }).collect(Collectors.toList()); } finally { lock.readLock().unlock(); } }
private List<MLDataFormats.MessageRange> buildIndividualDeletedMessageRanges() { lock.readLock().lock(); try { if (individualDeletedMessages.isEmpty()) { return Collections.emptyList(); } MLDataFormats.NestedPositionInfo.Builder nestedPositionBuilder = MLDataFormats.NestedPositionInfo.newBuilder(); MLDataFormats.MessageRange.Builder messageRangeBuilder = MLDataFormats.MessageRange.newBuilder(); return individualDeletedMessages.asRanges().stream() .limit(config.getMaxUnackedRangesToPersist()) .map(positionRange -> { PositionImpl p = positionRange.lowerEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setLowerEndpoint(nestedPositionBuilder.build()); p = positionRange.upperEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setUpperEndpoint(nestedPositionBuilder.build()); return messageRangeBuilder.build(); }) .collect(Collectors.toList()); } finally { lock.readLock().unlock(); } }
private List<MLDataFormats.MessageRange> buildIndividualDeletedMessageRanges() { lock.readLock().lock(); try { if (individualDeletedMessages.isEmpty()) { return Collections.emptyList(); } MLDataFormats.NestedPositionInfo.Builder nestedPositionBuilder = MLDataFormats.NestedPositionInfo .newBuilder(); MLDataFormats.MessageRange.Builder messageRangeBuilder = MLDataFormats.MessageRange.newBuilder(); return individualDeletedMessages.asRanges().stream().limit(config.getMaxUnackedRangesToPersist()) .map(positionRange -> { PositionImpl p = positionRange.lowerEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setLowerEndpoint(nestedPositionBuilder.build()); p = positionRange.upperEndpoint(); nestedPositionBuilder.setLedgerId(p.getLedgerId()); nestedPositionBuilder.setEntryId(p.getEntryId()); messageRangeBuilder.setUpperEndpoint(nestedPositionBuilder.build()); return messageRangeBuilder.build(); }).collect(Collectors.toList()); } finally { lock.readLock().unlock(); } }
setUpperEndpoint(subBuilder.buildPartial()); break;