Skip to content

Commit fb63d6b

Browse files
committed
#803 Close the header stream if the record extractor is not used.
1 parent 85ad6a6 commit fb63d6b

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

cobol-parser/src/main/scala/za/co/absa/cobrix/cobol/reader/VarLenNestedReader.scala

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,17 @@ class VarLenNestedReader[T: ClassTag](copybookContents: Seq[String],
100100
headerStream: SimpleStream,
101101
startingFileOffset: Long,
102102
fileNumber: Int,
103-
startingRecordIndex: Long): Iterator[Seq[Any]] =
103+
startingRecordIndex: Long): Iterator[Seq[Any]] = {
104+
val recordExtractorOpt = recordExtractor(startingRecordIndex, dataStream, headerStream)
105+
if (recordExtractorOpt.isEmpty) {
106+
headerStream.close()
107+
}
104108
if (cobolSchema.copybook.isHierarchical) {
105109
new VarLenHierarchicalIterator(cobolSchema.copybook,
106110
dataStream,
107111
readerProperties,
108112
recordHeaderParser,
109-
recordExtractor(startingRecordIndex, dataStream, headerStream),
113+
recordExtractorOpt,
110114
fileNumber,
111115
startingRecordIndex,
112116
startingFileOffset,
@@ -116,13 +120,14 @@ class VarLenNestedReader[T: ClassTag](copybookContents: Seq[String],
116120
dataStream,
117121
readerProperties,
118122
recordHeaderParser,
119-
recordExtractor(startingRecordIndex, dataStream, headerStream),
123+
recordExtractorOpt,
120124
fileNumber,
121125
startingRecordIndex,
122126
startingFileOffset,
123127
cobolSchema.segmentIdPrefix,
124128
handler)
125129
}
130+
}
126131

127132
/**
128133
* Traverses the data sequentially as fast as possible to generate record index.

0 commit comments

Comments
 (0)