Have a look at
http://www.nabble.com/Re%3A-sending-receiving-a-byte---p14220485s16868.html

Is your array of bytes prefixed with a length indicator ?
If not, how do you know the end of the message ?

Maybe we should add a ByteArrayCodecFactory to MINA.

Maarten

On Feb 19, 2008 3:19 PM, Christian Migowski <[EMAIL PROTECTED]> wrote:

> Hi,
>
> i stumbled over this as well some time ago. The Javadoc says this
> exception
> happens when the ByteBuffer isn't backed by an accessible array, my
> finding
> was it isn't guaranteed in any way it is - better do not rely on that
> method.
> Fortunately you can easily rewrite your code to
>
>     int len = in.remaining();
> //(i do think your usage of limit() is not what you intend to do)
>     byte[] stream = new byte[len];
>     in.get(stream , 0, in.remaining());
>
>
> hope that helps.
> regards,
> christian!
>
>
> On 2/19/08, Brenno Hayden <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > I am having a difficulty in mke this cast? Can I do something? Some tip
> ?
> >
> > *code*
> >
> > ByteArrayDecoder extends CumulativeProtocolDecoder {
> >
> > protected boolean doDecode(IoSession session, ByteBuffer in,
> > ProtocolDecoderOutput out) throws Exception {
> >     if (in instanceof ByteBuffer) {
> >      int len = in.limit();
> >      byte[] stream = new byte[len];
> >      //TODO
> >      stream = in.array(); // Why ?
> >      out.write(stream);
> >      return true;
> >     }else {
> >       return false.
> >     }
> > }
> >
> > *console*:
> >
> > org.apache.mina.filter.codec.ProtocolDecoderException:
> > java.lang.UnsupportedOperationException
> >
> >
> >
> > Thanks
> >
> >
> > --
> > ________________________
> > Brenno Hayden F. Dantas
> >
>

Reply via email to