@@ -106,6 +106,9 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
106106 case EFileFormat::CsvWithNames:
107107 case EFileFormat::TsvWithNames: {
108108 file = CleanupCsvFile (data, request, std::dynamic_pointer_cast<CsvConfig>(Config_)->ParseOpts , ctx);
109+ if (!file) {
110+ return ;
111+ }
109112 ctx.Send (request.Requester , new TEvArrowFile (Config_, std::move (file), request.Path ));
110113 break ;
111114 }
@@ -115,12 +118,18 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
115118 return ;
116119 }
117120 file = BuildParquetFileFromMetadata (data, request, ctx);
121+ if (!file) {
122+ return ;
123+ }
118124 ctx.Send (request.Requester , new TEvArrowFile (Config_, std::move (file), request.Path ));
119125 break ;
120126 }
121127 case EFileFormat::JsonEachRow:
122128 case EFileFormat::JsonList: {
123129 file = CleanupJsonFile (data, request, std::dynamic_pointer_cast<JsonConfig>(Config_)->ParseOpts , ctx);
130+ if (!file) {
131+ return ;
132+ }
124133 ctx.Send (request.Requester , new TEvArrowFile (Config_, std::move (file), request.Path ));
125134 break ;
126135 }
@@ -232,6 +241,9 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
232241 auto chunker = arrow::csv::MakeChunker (options);
233242 std::shared_ptr<arrow::Buffer> whole, partial;
234243 auto arrowData = BuildBufferFromData (data, request, ctx);
244+ if (!arrowData) {
245+ return nullptr ;
246+ }
235247 auto status = chunker->Process (arrowData, &whole, &partial);
236248
237249 if (!status.ok ()) {
@@ -273,13 +285,19 @@ class TArrowFileFetcher : public NActors::TActorBootstrapped<TArrowFileFetcher>
273285
274286 std::shared_ptr<arrow::io::RandomAccessFile> BuildParquetFileFromMetadata (const TString& data, const TRequest& request, const NActors::TActorContext& ctx) {
275287 auto arrowData = BuildBufferFromData (data, request, ctx);
288+ if (!arrowData) {
289+ return nullptr ;
290+ }
276291 return std::make_shared<arrow::io::BufferReader>(std::move (arrowData));
277292 }
278293
279294 std::shared_ptr<arrow::io::RandomAccessFile> CleanupJsonFile (const TString& data, const TRequest& request, const arrow::json::ParseOptions& options, const NActors::TActorContext& ctx) {
280295 auto chunker = arrow::json::MakeChunker (options);
281296 std::shared_ptr<arrow::Buffer> whole, partial;
282297 auto arrowData = BuildBufferFromData (data, request, ctx);
298+ if (!arrowData) {
299+ return nullptr ;
300+ }
283301
284302 if (Config_->Format == EFileFormat::JsonList) {
285303 auto empty = std::make_shared<arrow::Buffer>(nullptr , 0 );
0 commit comments