[
https://issues.apache.org/jira/browse/ARTEMIS-1056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15945178#comment-15945178
]
ASF GitHub Bot commented on ARTEMIS-1056:
-----------------------------------------
Github user gemmellr commented on a diff in the pull request:
https://github.com/apache/activemq-artemis/pull/1140#discussion_r108422248
--- Diff:
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/handler/ProtonHandler.java
---
@@ -322,17 +308,22 @@ private void dispatch() {
// because we could have a distributed deadlock
// while processing events (for instance onTransport)
// while a client is also trying to write here
- while ((ev = popEvent()) != null) {
- for (EventHandler h : handlers) {
- if (log.isTraceEnabled()) {
- log.trace("Handling " + ev + " towards " + h);
- }
- try {
- Events.dispatch(ev, h);
- } catch (Exception e) {
- log.warn(e.getMessage(), e);
- connection.setCondition(new ErrorCondition());
+
+ synchronized (lock) {
+ while ((ev = collector.peek()) != null) {
+ for (EventHandler h : handlers) {
+ if (log.isTraceEnabled()) {
+ log.trace("Handling " + ev + " towards " + h);
+ }
+ try {
+ Events.dispatch(ev, h);
+ } catch (Exception e) {
+ log.warn(e.getMessage(), e);
+ connection.setCondition(new ErrorCondition());
--- End diff --
Fair enough on that part then. As above though the code wont actually set
an error here, but will instead clear any existing one, and even if it did no
details would be sent until something else closes the connection.
> Performance improvements over AMQP
> ----------------------------------
>
> Key: ARTEMIS-1056
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1056
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Affects Versions: 2.0.0
> Reporter: clebert suconic
> Assignee: clebert suconic
> Fix For: 2.next
>
>
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)