session.read(FlowFile) just gives you an InputStream. You should be able to
rerun that as many times as you want provided you properly close it.

On Fri, Mar 27, 2020 at 11:25 AM Russell Bateman <r...@windofkeltia.com>
wrote:

> In my custom processor, I'm using a SAX parser to process an incoming
> flowfile that's in XML. Except that, this particular XML is in essence
> two different files and I would like to split, read and process the
> first "half", which starts a couple of lines (XML elements) into the
> file) not using the SAX parser. At the end, I would stream the output of
> the first half, then the SAX-processed second half.
>
> So, in short:
>
>  1. process the incoming flowfile for the early content not using SAX,
>     but merely copying as-is; at all cost I must avoid "reassembling"
>     the first half using my SAX handler (what I'm doing now),
>  2. output the first part down the output stream to the resulting flowfile,
>  3. (re)process the incoming flowfile using SAX (and I can just skip
>     over the first bit) and spitting the result of this second part out
>     down the output stream of the resulting flowfile.
>
> I guess this is tantamount to asking how, in Java, I can read an input
> stream twice (or one-half plus one times). Maybe it's less a NiFi
> developer question and more a Java question. I have looked at it that
> way too, but, if one of you knows (particularly NiFi) best practice, I
> would very much like to hear about it.
>
> Thanks.
>
>

Reply via email to