Re: Camel netty is messing my TCP Hex packages

2016-04-05 Thread Claus Ibsen
Netty got some bytes decoders that are length based etc. Search a bit
on what they offer out of the box and you can configure camel netty to
use one of them.

There is also a few of them you can configure from camel-netty using
the ChannelHandlerFactories. You can find some source example at:
http://camel.apache.org/netty4.html

On Tue, Apr 5, 2016 at 4:00 PM, Felipe Gutierrez
 wrote:
> Hi,
>
> I am using camel-netty for the first time. I did an example that I can send
> string from telnet and proxy it to the third server. But now I want to
> evaluate to send pure tcp messages and I believe netty assuming to use a
> wrong decoder/encoder. Because I took out "
> =#stringEncoder=#stringDecoder" and I receive the first
> messages from the client and after while the client stop to comunicate and
> I receive the errors below. I also believe I need to create a pool of
> request as I see here (
> http://www.mastertheboss.com/jboss-frameworks/netty/use-netty-to-proxy-your-requests),
> but I do not know how to create it using Camel.
>
> In a simple way. I just want to redirect TCP messages from port 3260 to
> 3261, but Camel-Netty is converting my Hex messages to String messages. Is
> there a default en/decoder? or Hex en/decoder?
>
> Regards
>
> package org.camel.netty.first.server;
> import org.apache.camel.builder.RouteBuilder;import
> org.apache.camel.spring.Main;
> public class ServerRouter extends RouteBuilder {
>
> public static void main(String[] args) throws Exception {
> Main main = new Main();
> main.setApplicationContextUri("META-INF/spring/app-context.xml");
> main.run(args);
> }
>
> @Override
> public void configure() throws Exception {
> 
> from("netty:tcp://localhost:3260?sync=false=false=#stringEncoder=#stringDecoder")
>
> .to("netty:tcp://localhost:3261?sync=false=false=#stringEncoder=#stringDecoder");
> }}
>
>
> WARNING: Failed to release a message:
> SimpleLeakAwareByteBuf(UnpooledUnsafeDirectByteBuf(freed))
> io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
> at 
> io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
> at io.netty.buffer.WrappedByteBuf.release(WrappedByteBuf.java:820)
> at 
> io.netty.buffer.SimpleLeakAwareByteBuf.release(SimpleLeakAwareByteBuf.java:34)
> at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
> at 
> io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
> at 
> io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
> at 
> io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
> at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
> at 
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
> at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
> at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
> at 
> io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:688)
> at 
> io.netty.channel.AbstractChannelHandlerContext.access$1600(AbstractChannelHandlerContext.java:32)
> at 
> io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:992)
> at 
> io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:924)
> at 
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
> at 
> io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
> at java.lang.Thread.run(Thread.java:745)
> Apr 04, 2016 2:59:15 PM io.netty.util.ReferenceCountUtil safeRelease
> WARNING: Failed to release a message: UnpooledUnsafeDirectByteBuf(freed)
> io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
> at 
> io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
> at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
> at 
> io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
> at 
> io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
> at 
> io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
> at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
> at 
> io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
> at 
> io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
> at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
> 

Camel netty is messing my TCP Hex packages

2016-04-05 Thread Felipe Gutierrez
Hi,

I am using camel-netty for the first time. I did an example that I can send
string from telnet and proxy it to the third server. But now I want to
evaluate to send pure tcp messages and I believe netty assuming to use a
wrong decoder/encoder. Because I took out "
=#stringEncoder=#stringDecoder" and I receive the first
messages from the client and after while the client stop to comunicate and
I receive the errors below. I also believe I need to create a pool of
request as I see here (
http://www.mastertheboss.com/jboss-frameworks/netty/use-netty-to-proxy-your-requests),
but I do not know how to create it using Camel.

In a simple way. I just want to redirect TCP messages from port 3260 to
3261, but Camel-Netty is converting my Hex messages to String messages. Is
there a default en/decoder? or Hex en/decoder?

Regards

package org.camel.netty.first.server;
import org.apache.camel.builder.RouteBuilder;import
org.apache.camel.spring.Main;
public class ServerRouter extends RouteBuilder {

public static void main(String[] args) throws Exception {
Main main = new Main();
main.setApplicationContextUri("META-INF/spring/app-context.xml");
main.run(args);
}

@Override
public void configure() throws Exception {

from("netty:tcp://localhost:3260?sync=false=false=#stringEncoder=#stringDecoder")

.to("netty:tcp://localhost:3261?sync=false=false=#stringEncoder=#stringDecoder");
}}


WARNING: Failed to release a message:
SimpleLeakAwareByteBuf(UnpooledUnsafeDirectByteBuf(freed))
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
at 
io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
at io.netty.buffer.WrappedByteBuf.release(WrappedByteBuf.java:820)
at 
io.netty.buffer.SimpleLeakAwareByteBuf.release(SimpleLeakAwareByteBuf.java:34)
at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
at 
io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
at 
io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
at 
io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:688)
at 
io.netty.channel.AbstractChannelHandlerContext.access$1600(AbstractChannelHandlerContext.java:32)
at 
io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:992)
at 
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:924)
at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at java.lang.Thread.run(Thread.java:745)
Apr 04, 2016 2:59:15 PM io.netty.util.ReferenceCountUtil safeRelease
WARNING: Failed to release a message: UnpooledUnsafeDirectByteBuf(freed)
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
at 
io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:59)
at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:84)
at 
io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:276)
at 
io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:473)
at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:709)
at 
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:315)
at 
io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:676)
at 
io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1059)
at 
io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:688)
at 
io.netty.channel.AbstractChannelHandlerContext.access$1600(AbstractChannelHandlerContext.java:32)
at 
io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:992)
at 
io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:924)
at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
at