You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2018/04/17 17:06:04 UTC

qpid-jms git commit: QPIDJMS-379 Don't create duplicates for processing incoming bytes

Repository: qpid-jms
Updated Branches:
  refs/heads/master 498fd7651 -> 8dd97074a


QPIDJMS-379 Don't create duplicates for processing incoming bytes

Avoid nioBuffer on netty buffer and don't duplicate the tail buffer,
just let netty write into it in the most efficient manner based on what
is backing the netty buffer.


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/8dd97074
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/8dd97074
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/8dd97074

Branch: refs/heads/master
Commit: 8dd97074a60317062ab3cdbf9651ebecaa3d81db
Parents: 498fd76
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Apr 17 13:05:55 2018 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Apr 17 13:05:55 2018 -0400

----------------------------------------------------------------------
 .../qpid/jms/provider/amqp/AmqpProvider.java       | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/8dd97074/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
index 97bdddf..916e87c 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
@@ -812,17 +812,13 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP
                         TRACE_BYTES.info("Received: {}", ByteBufUtil.hexDump(input));
                     }
 
-                    ByteBuffer source = input.nioBuffer();
-
                     do {
-                        ByteBuffer buffer = protonTransport.getInputBuffer();
-                        int limit = Math.min(buffer.remaining(), source.remaining());
-                        ByteBuffer duplicate = source.duplicate();
-                        duplicate.limit(source.position() + limit);
-                        buffer.put(duplicate);
-                        protonTransport.processInput().checkIsOk();
-                        source.position(source.position() + limit);
-                    } while (source.hasRemaining());
+                        ByteBuffer buffer = protonTransport.tail();
+                        int chunkSize = Math.min(buffer.remaining(), input.readableBytes());
+                        buffer.limit(buffer.position() + chunkSize);
+                        input.readBytes(buffer);
+                        protonTransport.process();
+                    } while (input.isReadable());
 
                     ReferenceCountUtil.release(input);
 
@@ -832,7 +828,6 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP
                     pumpToProtonTransport();
                 } catch (Throwable t) {
                     LOG.warn("Caught problem during data processing: {}", t.getMessage(), t);
-
                     fireProviderException(t);
                 }
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org