camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walzer, Thomas" <thomas.wal...@integratix.net>
Subject Re: HL7/netty4/BodyType: io.netty.buffer.UnpooledUnsafeDirectByteBuf
Date Sun, 24 Jan 2016 10:13:31 GMT
I am using Camel 2.15.2 & blueprint.
When using to uri=„log:…“ (Log component) it shows the body-type as unpooledunsafedirectbytebuf.
This statement works ok. And yes, it should contain the ack response.
When using <log message=„*** ${body} ***“/> (or anything else that needs a string,
like convertbodytostring, etc) I get exceptions.
Even when the first statement after netty4 is to-file it does not work. So there should be
no one consuming it before.
The codecs are default.


<bean id="hl7nettydecoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory">
</bean>
<bean id="hl7nettyencoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory">
</bean>

I will continue to strip my complex project down.

Cheers, Thomas.

Am 22.01.2016 um 16:04 schrieb Claus Ibsen <claus.ibsen@gmail.com<mailto:claus.ibsen@gmail.com>>:

On Fri, Jan 22, 2016 at 3:58 PM, Walzer, Thomas
<thomas.walzer@integratix.net<mailto:thomas.walzer@integratix.net>> wrote:
Problem is: I have a simple example that works fine. My more elaborate version breaks. But
basically it is:
queue->transacted->convertbodytostring->setSomeHeaders->log->netty4->log

The netty4 listening to my message gets the message and returns an ack. When I try to get
it as a string—>it breaks.
I do have a DefaultErrorhandler configured. But it should not kick in if everything works
ok.


Just to be clear. Its that last part

   netty4->log

Where you attempt to log the netty4 response (eg the ack response) ?

Do you use any special codec or encoders with netty4 or something?
And what version of Camel do you use?

When I change the netty4 endpoint to mina2 -> it works. So I assume the problem lies with
the netty4 component. Maybe the codecs? Why do I not use mina2? Because ultimately I want
TLS which is broken with mina2 in my version of Camel.

It seems like some problem with redelivery as Claus suggested, however I am still puzzled…

Cheers, Thomas.

Am 22.01.2016 um 08:20 schrieb Claus Ibsen <claus.ibsen@gmail.com<mailto:claus.ibsen@gmail.com>>:

On Tue, Jan 19, 2016 at 4:54 PM, Walzer, Thomas
<thomas.walzer@integratix.net<mailto:thomas.walzer@integratix.net>> wrote:
Hi,

camel-2.15.2

I can successfully send to a HL7-Server, however I have troubles accessing the resulting ACK.
Unfortunately it is of type UnpooledUnsafeDirectByteBuf and type conversion to string fails:

....On delivery attempt: 2 caught: org.apache.camel.TypeConversionException: Error during
type conversion from type: java.lang.String to the required type: java.lang.String with value
UnpooledUnsafeDirectByteBuf(freed) due io.netty.util.IllegalReferenceCountException: refCnt:
0


Sounds like you are doing redelivery and the byte buf is not reset on
redelivery or something so the data stream becomes empty and not
convertable to a string type. A bit like when you are not using stream
caching
http://camel.apache.org/why-is-my-message-body-empty.html



Any ideas how to work with the ACK (besides logging which works)?

Cheers, Thomas.



--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2




--
Claus Ibsen
-----------------
http://davsclaus.com<http://davsclaus.com/> @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message