It’s been a while I wrote that.  I remember there was a method for sabe
that would block. saveSomethint

I will check later.

On Fri, Aug 5, 2022 at 12:04 PM Jan Šmucr <jan.sm...@aimtecglobal.com>
wrote:

> That’s an option, but given that it’s an AWS Lambda function, I’d prefer
> to stream it, so that there’s no need to use either the memory or the
> underlying ephemeral storage.
>
> However that’s not the point. I just wanted to know if the setOutputStream
> function is supposed to block, or if I’m doing something wrong. I’d write a
> test but first I need to know if I use the method right. 😊
>
> Thank you.
>
> From: Clebert Suconic<mailto:clebert.suco...@gmail.com>
> Sent: pátek 5. srpna 2022 17:57
> To: dev@activemq.apache.org<mailto:dev@activemq.apache.org>
> Cc: Zuzana Káčereková<mailto:zuzana.kacerek...@aimtecglobal.com>
> Subject: Re: A question about ClientMessage.setOutputStream()
>
> I would save the Message locally before you forward it anywhere else.
>
> On Fri, Aug 5, 2022 at 7:35 AM Jan Šmucr <jan.sm...@aimtecglobal.com>
> wrote:
> >
> > Hi Domenico,
> > thank you for your response.
> > Unfortunately, this does not work either.
> >
> > Tests which use this method pass fine, because the output stream happens
> to be a FileOutputStream instance which does not block (unless there’s some
> issue with the underlying file system).
> >
> > Jan
> >
> > From: Domenico Francesco Bruscino<mailto:bruscin...@gmail.com>
> > Sent: pátek 5. srpna 2022 12:57
> > To: dev@activemq.apache.org<mailto:dev@activemq.apache.org>
> > Subject: Re: A question about ClientMessage.setOutputStream()
> >
> > Hi Jan,
> >
> > calling checkCompletion() or getBodyBuffer() before
> > calling setOutputStream(OutputStream) should fix your issue.
> >
> > Regards,
> > Domenico
> >
> > On Fri, 5 Aug 2022 at 11:06, Jan Šmucr <jan.sm...@aimtecglobal.com>
> wrote:
> >
> > > Hello.
> > >
> > > The Large Messages documentation states that:
> > > > setOutputStream(OutputStream): Set the OutputStream that will receive
> > > the body of a message. This method does not block.
> > >
> > > However if I write something like this:
> > >
> > > InputStream input = new PipedInputStream(1);
> > > OutputStream output = new PipedOutputStream(input);
> > > msg.setOutputStream(output);
> > > // Now imagine I read something from the input and then:
> > > msg.waitOutputStreamCompletion(0);
> > >
> > > …then never make it beyond the msg.setOutputStream(output) line.
> > >
> > > Is there something I don’t understand about the method being non
> blocking
> > > as opposed to the saveToOutputStream method?
> > >
> > > Thank you.
> > > Jan
> > >
> >
>
>
> --
> Clebert Suconic
>
> --
Clebert Suconic

Reply via email to