@Override public boolean hasNext() { return input.getOffset() < endingOffset; }
@Override public long getOffset() { return input.getOffset(); }
private PositionInternal getPosition() { Map<Segment, Long> positions = readers.stream() .collect(Collectors.toMap(e -> e.getSegmentId(), e -> e.getOffset())); return new PositionImpl(positions); }
@GuardedBy("readers") private void releaseSegmentsIfNeeded() throws ReaderNotInReaderGroupException { Segment segment = groupState.findSegmentToReleaseIfRequired(); if (segment != null) { log.info("{} releasing segment {}", this, segment); EventSegmentReader reader = readers.stream().filter(r -> r.getSegmentId().equals(segment)).findAny().orElse(null); if (reader != null) { if (groupState.releaseSegment(segment, reader.getOffset(), getLag())) { readers.remove(reader); reader.close(); } } } }
Mockito.when(segmentInputStream2.read(anyLong())).thenReturn(buffer); Mockito.when(segmentInputStream2.getSegmentId()).thenReturn(Segment.fromScopedName("Foo/test/0")); Mockito.when(segmentInputStream2.getOffset()).thenReturn(10L);
Mockito.when(segmentInputStream2.read(anyLong())).thenReturn(buffer); Mockito.when(segmentInputStream2.getSegmentId()).thenReturn(Segment.fromScopedName("Foo/test/0")); Mockito.when(segmentInputStream2.getOffset()).thenReturn(10L);
} else { segment = segmentReader.getSegmentId(); offset = segmentReader.getOffset(); try { buffer = segmentReader.read(waitTime);