[
https://issues.apache.org/jira/browse/ARTEMIS-1276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16094900#comment-16094900
]
ASF GitHub Bot commented on ARTEMIS-1276:
-----------------------------------------
Github user jdanekrh commented on the issue:
https://github.com/apache/activemq-artemis/pull/1407
Right. Yeah, I think this one is actual OpenWire handling bug in Artemis.
If the message expires while it is being prefetched on client, server drops it
and never tries to expire it.
i may even have a fix, but this message lifecycle is quite complicated, so
it is likely I am missing something...
```diff
---
a/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/amq/AMQConsumer.java
+++
b/artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/amq/AMQConsumer.java
@@ -298,8 +298,9 @@ public class AMQConsumer {
}
}
if (ack.isExpiredAck()) {
- //adjust delivering count for expired messages
- this.serverConsumer.getQueue().decDelivering(ackList.size());
+ for (MessageReference ref : ackList) {
+ ref.getQueue().expire(ref);
+ }
}
}
```
> [openwire-tests] Enable more OpenWire tests (from ActiveMQ 5)
> -------------------------------------------------------------
>
> Key: ARTEMIS-1276
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1276
> Project: ActiveMQ Artemis
> Issue Type: Test
> Components: OpenWire
> Affects Versions: 2.2.0
> Reporter: Jiri Danek
> Priority: Minor
>
> I've been looking into the currently disabled OpenWire tests, if there is a
> way to implement support for more of them and enable them.
> I believe I've made some progress on this front, so I'd wish to discuss
> 1) what is the endgame about these tests; do we want to eventually run them
> all, or is it expected to to ignore some?
> 2) what tests would be useful to enable now? I've been looking at them from
> the point of how easy it is to enable them, not how useful it is.
> 3) would it be ok to add mockito as a test dependency? it seems useful,
> because sometimes it is necessary to wrap something in ActiveMQ5 class, and
> doing a proxy avoids having to invoke superclass constructors (when the thing
> that needs to be implemented is a class and not an interface). Mockito is IMO
> nicer to use than using java.lang.reflect.Proxy.newProxyInstance directly.
> and propose PR based on that discussion.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)