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
>

Reply via email to