[ 
https://issues.apache.org/jira/browse/DIRMINA-1057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16194767#comment-16194767
 ] 

Emmanuel Lecharny edited comment on DIRMINA-1057 at 10/6/17 3:58 PM:
---------------------------------------------------------------------

I don't think that I understand this code well but is it the case that if one 
is using a {{ProtocolCodecFilter}} - that contains an {{IoBuffer}} - 
{{ScheduledWriteMessages}} will not be incremented ?
The fragment below from {{DefaultIoFilterChain}} (for the referenced version, 
start line 734) suggests that {{ScheduledWriteBytes}} or 
{{ScheduledWriteMessages}} will be incremented, not both.

{code:java}
// Maintain counters.
            if (writeRequest.getMessage() instanceof IoBuffer) {
                IoBuffer buffer = (IoBuffer) writeRequest.getMessage();
                // I/O processor implementation will call buffer.reset()
                // it after the write operation is finished, because
                // the buffer will be specified with messageSent event.
                buffer.mark();
                int remaining = buffer.remaining();

                if (remaining > 0) {
                    s.increaseScheduledWriteBytes(remaining);
                }
            } else {
                s.increaseScheduledWriteMessages();
            } 
{code}


was (Author: david-gibbs-ig):
I don't think that I understand this code well but is it the case that if one 
is using a ProtocolCodecFilter - that contains an IoBuffer - 
ScheduledWriteMessages will not be incremented ?
The fragment below from DefaultIoFilterChain (for the referenced version, start 
line 734) suggests that ScheduledWriteBytes or ScheduledWriteMessages will be 
incremented, not both.

// Maintain counters.
            if (writeRequest.getMessage() instanceof IoBuffer) {
                IoBuffer buffer = (IoBuffer) writeRequest.getMessage();
                // I/O processor implementation will call buffer.reset()
                // it after the write operation is finished, because
                // the buffer will be specified with messageSent event.
                buffer.mark();
                int remaining = buffer.remaining();

                if (remaining > 0) {
                    s.increaseScheduledWriteBytes(remaining);
                }
            } else {
                s.increaseScheduledWriteMessages();
            } 

> AbstractIoSession getScheduledWriteMessages always -negative?
> -------------------------------------------------------------
>
>                 Key: DIRMINA-1057
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1057
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.16
>         Environment: I'm testing slow consumer backlog detection and while 
> getScheduledWriteBytes() correctly grows, getScheduledWriteMessages is always 
> negative and does not increase. looking into code to see why but putting bug 
> report here as well for tracking
>            Reporter: Andre Mermegas
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to