You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2009/10/25 20:56:47 UTC

svn commit: r829634 - /qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java

Author: rgodfrey
Date: Sun Oct 25 19:56:47 2009
New Revision: 829634

URL: http://svn.apache.org/viewvc?rev=829634&view=rev
Log:
Only create one AMQMessage perincoming message

Modified:
    qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java

Modified: qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java?rev=829634&r1=829633&r2=829634&view=diff
==============================================================================
--- qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java (original)
+++ qpid/branches/java-broker-0-10/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQChannel.java Sun Oct 25 19:56:47 2009
@@ -48,6 +48,7 @@
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.message.AMQMessage;
 import org.apache.qpid.server.message.MessageMetaData;
+import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.logging.LogActor;
 import org.apache.qpid.server.logging.LogSubject;
@@ -192,18 +193,18 @@
             routeCurrentMessage();
 
 
-                _transaction.addPostCommitAction(new ServerTransaction.Action()
-                {
+            _transaction.addPostCommitAction(new ServerTransaction.Action()
+            {
 
-                    public void postCommit()
-                    {
-                    }
+                public void postCommit()
+                {
+                }
 
-                    public void onRollback()
-                    {
-                        handle.remove();
-                    }
-                });
+                public void onRollback()
+                {
+                    handle.remove();
+                }
+            });
 
             deliverCurrentMessageIfComplete();
 
@@ -984,11 +985,13 @@
             {
                 final boolean immediate = _incommingMessage.isImmediate();
 
-
+                final AMQMessage amqMessage = createAMQMessage(_incommingMessage);
+                MessageReference ref = amqMessage.newReference();
 
                 for(AMQQueue queue : _destinationQueues)
                 {
-                    QueueEntry entry = queue.enqueue(createAMQMessage(_incommingMessage));
+
+                    QueueEntry entry = queue.enqueue(amqMessage);
                     queue.checkCapacity(AMQChannel.this);
 
 
@@ -1035,6 +1038,7 @@
                     }
 
                 }
+                ref.release();
             }
             catch (AMQException e)
             {



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org