@Override public void close() { input.close(); }
private void handleEndOfSegment(EventSegmentReader oldSegment, boolean fetchSuccessors) throws ReaderNotInReaderGroupException { log.info("{} encountered end of segment {} ", this, oldSegment.getSegmentId()); readers.remove(oldSegment); oldSegment.close(); groupState.handleEndOfSegment(oldSegment.getSegmentId(), fetchSuccessors); }
@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(); } } } }
@Override public void close() { synchronized (readers) { if (!closed) { log.info("Closing reader {} ", this); closed = true; groupState.readerShutdown(getPosition()); for (EventSegmentReader reader : readers) { reader.close(); } readers.clear(); groupState.close(); } } }
@Override public void close() { synchronized (lock) { try { out.close(); } catch (SegmentSealedException e) { log.warn("Error closing segment writer {}", out); } conditional.close(); meta.close(); in.close(); } } }
Mockito.verify(segmentInputStream, Mockito.times(1)).close();
Mockito.verify(segmentInputStream1, Mockito.times(1)).close();