martinzink commented on code in PR #1616:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1616#discussion_r1275429341


##########
libminifi/src/io/StreamSlice.cpp:
##########
@@ -23,7 +23,8 @@ namespace org::apache::nifi::minifi::io {
 StreamSlice::StreamSlice(std::shared_ptr<io::InputStream> stream, size_t 
offset, size_t size) : stream_(std::move(stream)), slice_offset_(offset), 
slice_size_(size) {
   stream_->seek(slice_offset_);
   if (stream_->size() < slice_offset_ + slice_size_)
-    throw std::invalid_argument("StreamSlice is bigger than the Stream");
+    throw std::invalid_argument("StreamSlice is bigger than the Stream, Stream 
size: " + std::to_string(stream_->size()) +
+      ", StreamSlice size: " + std::to_string(slice_size_) + ", offset: " + 
std::to_string(slice_offset_));

Review Comment:
   nitpicking but we could utilize fmt::format for a more compact and more 
readable version
   ```suggestion
       throw std::invalid_argument(fmt::format("StreamSlice is bigger than the 
Stream, Stream size: {}, StreamSlice size: {}, offset: {}", stream_->size(), 
slice_size_, slice_offset_));
   ```



##########
extensions/libarchive/MergeContent.cpp:
##########
@@ -213,18 +213,19 @@ bool MergeContent::processBin(core::ProcessContext 
*context, core::ProcessSessio
         });
   }
 
-  std::shared_ptr<core::FlowFile> merge_flow = 
std::static_pointer_cast<FlowFileRecord>(session->create());
+  std::shared_ptr<core::FlowFile> merge_flow = 
std::static_pointer_cast<FlowFileRecord>(session.create());

Review Comment:
   I think it might be better to introduce a function to processSession that 
checks if the flowfile is in a valid transferred state, and then let a RAII 
take care of the removal instead. This way we dont have to keep in mind that we 
have to remove it during the various early return paths.
   something like this should do it
   ```
     auto remove_merge_flow = gsl::finally([&](){
       if (!session.hasBeenTransferred(*merge_flow))
         session.remove(merge_flow);
     });
   ```
   whre the hasbeentransferred should check if the updated_relationships_ or 
added_flowfiles_ maps contain a nonnull relationship* for the flowfile



##########
extensions/libarchive/MergeContent.cpp:
##########
@@ -246,27 +247,30 @@ bool MergeContent::processBin(core::ProcessContext 
*context, core::ProcessSessio
     mimeType = "application/zip";
   } else {
     logger_->log_error("Merge format not supported %s", mergeFormat_);
+    session.remove(merge_flow);
     return false;
   }
 
   std::shared_ptr<core::FlowFile> mergeFlow;

Review Comment:
   nitpicking and old code, but this seems unused
   ```suggestion
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to