final int idx = i; Flowable<StreamEntity<D>> thisStream = forkedStream.filter(new ForkFilter<>(idx)).map(RecordWithForkMap::getRecordCopyIfNecessary); forkStreams.add(inputStream.withRecordStream(thisStream, mustCopy ? (GlobalMetadata<S>) CopyHelper.copy(inputStream.getGlobalMetadata()) :
final int idx = i; Flowable<StreamEntity<D>> thisStream = forkedStream.filter(new ForkFilter<>(idx)).map(RecordWithForkMap::getRecordCopyIfNecessary); forkStreams.add(inputStream.withRecordStream(thisStream, mustCopy ? (GlobalMetadata<S>) CopyHelper.copy(inputStream.getGlobalMetadata()) :