public BufferedSeekableSource(SeekableSource wrapped) { super( ofNullable(wrapped) .map(SeekableSource::id) .orElseThrow( () -> { return new IllegalArgumentException( "Input decorated SeekableSource cannot be null"); })); this.wrapped = wrapped; this.size = wrapped.size(); this.buffer.limit(0); }