Skip to content

Commit ca7c226

Browse files
author
Alexandru Scvortov
committed
it's simpler not to use another listener
1 parent 8b4fe69 commit ca7c226

File tree

1 file changed

+6
-24
lines changed

1 file changed

+6
-24
lines changed

src/com/rabbitmq/client/impl/ChannelN.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,6 @@ public class ChannelN extends AMQChannel implements com.rabbitmq.client.Channel
100100
*/
101101
public volatile Consumer defaultConsumer = null;
102102

103-
/** Internal ConfirmListener used to keep track of unacknowledged
104-
* messages. */
105-
protected volatile ConfirmListener firstConfirmListener;
106-
107103
/** Set of currently unconfirmed messages (i.e. messages that have
108104
* not been ack'd or nack'd by the server yet. */
109105
protected volatile SortedSet<Long> unconfirmedSet =
@@ -123,24 +119,6 @@ public class ChannelN extends AMQChannel implements com.rabbitmq.client.Channel
123119
*/
124120
public ChannelN(AMQConnection connection, int channelNumber) {
125121
super(connection, channelNumber);
126-
127-
firstConfirmListener = new ConfirmListener() {
128-
public void handleAck(long seqNo, boolean multiple)
129-
throws IOException
130-
{
131-
if (confirmListener != null)
132-
confirmListener.handleAck(seqNo, multiple);
133-
handleAckNack(seqNo, multiple, false);
134-
}
135-
136-
public void handleNack(long seqNo, boolean multiple)
137-
throws IOException
138-
{
139-
if (confirmListener != null)
140-
confirmListener.handleNack(seqNo, multiple);
141-
handleAckNack(seqNo, multiple, true);
142-
}
143-
};
144122
}
145123

146124
/**
@@ -376,18 +354,22 @@ public void releaseChannelNumber() {
376354
} else if (method instanceof Basic.Ack) {
377355
Basic.Ack ack = (Basic.Ack) method;
378356
try {
379-
firstConfirmListener.handleAck(ack.getDeliveryTag(), ack.getMultiple());
357+
if (confirmListener != null)
358+
confirmListener.handleAck(ack.getDeliveryTag(), ack.getMultiple());
380359
} catch (Throwable ex) {
381360
_connection.getExceptionHandler().handleConfirmListenerException(this, ex);
382361
}
362+
handleAckNack(ack.getDeliveryTag(), ack.getMultiple(), false);
383363
return true;
384364
} else if (method instanceof Basic.Nack) {
385365
Basic.Nack nack = (Basic.Nack) method;
386366
try {
387-
firstConfirmListener.handleNack(nack.getDeliveryTag(), nack.getMultiple());
367+
if (confirmListener != null)
368+
confirmListener.handleNack(nack.getDeliveryTag(), nack.getMultiple());
388369
} catch (Throwable ex) {
389370
_connection.getExceptionHandler().handleConfirmListenerException(this, ex);
390371
}
372+
handleAckNack(nack.getDeliveryTag(), nack.getMultiple(), true);
391373
return true;
392374
} else if (method instanceof Basic.RecoverOk) {
393375
for (Consumer callback: _consumers.values()) {

0 commit comments

Comments
 (0)