Override decodeLast instead of checking readableBytes
-----------------------------------------------------
Key: ISPN-393
URL:
https://jira.jboss.org/jira/browse/ISPN-393
Project: Infinispan
Issue Type: Task
Components: Cache Server
Affects Versions: 4.1.0.ALPHA1
Reporter: Galder Zamarreno
Assignee: Galder Zamarreno
Fix For: 4.1.0.ALPHA2
Replace readableBytes hack when clients disconnect from the channel with implementing
decodeLast accordingly. See below for more details
<galderz> one final thing,
<galderz> one thing I've spotted is that when a clients disconnect
<trustin> (overriden that is)
<galderz> my ReplayingDecoder.decode is called with nothing to read
<galderz> iow, trying to read a byte throws a rather noisy ChannelClosedException or
something like that
<galderz> so, to get around this,
<galderz> i created in the netty ChannelBufferAdapter that we have
<galderz> i created a method called readableBytes that computes
<galderz> buffer.writerIndex - buffer.readerIndex
<trustin> hmmm
<trustin> actually, ReplayingDecoder calls its decodeLast() method when the
connection is closed.
<galderz> calling buffer,readableBytes in the ReplayingDecoder would not really
tell me what's behing
<trustin> but the default implementation of decodeLast() is delegate the call to
decode();.
<galderz> right, so maybe I need to override decodeLast?
<galderz> what I'm doing right now looks v hacky
<trustin> yeah if you do not want to be notified when the connection is closed in
your decoder
<trustin> just override decodeLast() an do nothing there.
<galderz> right, i'll check that out as well
<trustin> The default decodeLast() implementation is reasonable with FrameDecoder,
but I guess it seems to confuse the user with ReplayingDecoder
* manik has quit (Quit: manik)
<galderz> i think so, cos readableBytes gives me Integer.Max in those situations
<trustin> when disconnected
<trustin> readableBytes() will give the actual readable bytes
<galderz> yeah, when disconnected
<trustin> instead of Integer.MAX
<galderz> it was definitely not giving me 0
<galderz> it was giving something really big
<trustin> oh I see.
<trustin> Let me know if you still have to problem after overriding decodeLast()
<trustin> to -> the
<galderz> sure, thanks a million for this chat
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira