Author: rgodfrey
Date: Wed Oct 21 15:51:32 2015
New Revision: 1709868

URL: http://svn.apache.org/viewvc?rev=1709868&view=rev
Log:
QPID-6797 : Stop creating unnecessary objects (derived from examining profiler 
output)

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
    
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/UnacknowledgedMessageMapImpl.java
    qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/FieldTable.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java?rev=1709868&r1=1709867&r2=1709868&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/QueueRunner.java
 Wed Oct 21 15:51:32 2015
@@ -54,11 +54,13 @@ public class QueueRunner implements Runn
     private final AtomicLong _lastRunAgain = new AtomicLong();
     private final AtomicLong _lastRunTime = new AtomicLong();
     private final AccessControlContext _context;
+    private final String _taskName;
 
     public QueueRunner(AbstractQueue queue, AccessControlContext context)
     {
         _queue = queue;
         _context = context;
+        _taskName = "Queue Runner[" + _queue.getName() + "]";
     }
 
     @Override
@@ -94,7 +96,7 @@ public class QueueRunner implements Runn
                 {
                     if(_scheduled.compareAndSet(IDLE, SCHEDULED))
                     {
-                        _queue.execute("Queue Runner["+ _queue.getName()+"]", 
QueueRunner.this, _context);
+                        _queue.execute(_taskName, QueueRunner.this, _context);
                     }
                 }
             }
@@ -112,7 +114,7 @@ public class QueueRunner implements Runn
         _stateChange.set(true);
         if(_scheduled.compareAndSet(IDLE, SCHEDULED))
         {
-            _queue.execute("Queue Runner["+ _queue.getName()+"]", this, 
_context);
+            _queue.execute(_taskName, this, _context);
         }
     }
 

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java?rev=1709868&r1=1709867&r2=1709868&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
 Wed Oct 21 15:51:32 2015
@@ -78,8 +78,9 @@ import org.apache.qpid.server.transport.
 public class SecurityManager
 {
 
+    private static final SystemPrincipal SYSTEM_PRINCIPAL = new 
SystemPrincipal();
     private static final Subject SYSTEM = new Subject(true,
-                                                     Collections.singleton(new 
SystemPrincipal()),
+                                                     
Collections.singleton(SYSTEM_PRINCIPAL),
                                                      Collections.emptySet(),
                                                      Collections.emptySet());
 
@@ -162,7 +163,7 @@ public class SecurityManager
 
     public static boolean isSystemSubject(final Subject subject)
     {
-        return !(subject == null  || 
subject.getPrincipals(SystemPrincipal.class).isEmpty());
+        return subject != null  && 
subject.getPrincipals().contains(SYSTEM_PRINCIPAL);
     }
 
     public static AuthenticatedPrincipal getCurrentUser()

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java?rev=1709868&r1=1709867&r2=1709868&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
 Wed Oct 21 15:51:32 2015
@@ -1608,7 +1608,7 @@ public class AMQChannel
 
     private class MessageAcknowledgeAction implements ServerTransaction.Action
     {
-        private final Collection<MessageInstance> _ackedMessages;
+        private Collection<MessageInstance> _ackedMessages;
 
         public MessageAcknowledgeAction(Collection<MessageInstance> 
ackedMessages)
         {
@@ -1626,7 +1626,7 @@ public class AMQChannel
             }
             finally
             {
-                _ackedMessages.clear();
+                _ackedMessages = Collections.emptySet();
             }
 
         }
@@ -1653,7 +1653,7 @@ public class AMQChannel
                 }
                 finally
                 {
-                    _ackedMessages.clear();
+                    _ackedMessages = Collections.emptySet();
                 }
             }
 

Modified: 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/UnacknowledgedMessageMapImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/UnacknowledgedMessageMapImpl.java?rev=1709868&r1=1709867&r2=1709868&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/UnacknowledgedMessageMapImpl.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/UnacknowledgedMessageMapImpl.java
 Wed Oct 21 15:51:32 2015
@@ -21,7 +21,9 @@
 package org.apache.qpid.server.protocol.v0_8;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -146,18 +148,38 @@ public class UnacknowledgedMessageMapImp
 
     public Collection<MessageInstance> acknowledge(long deliveryTag, boolean 
multiple)
     {
-        Map<Long, MessageInstance> ackedMessageMap = new 
LinkedHashMap<Long,MessageInstance>();
-        collect(deliveryTag, multiple, ackedMessageMap);
-        remove(ackedMessageMap);
-        List<MessageInstance> acknowledged = new ArrayList<>();
-        for(MessageInstance instance : ackedMessageMap.values())
+        if(multiple)
         {
-            if(instance.lockAcquisition())
+            Map<Long, MessageInstance> ackedMessageMap = new 
LinkedHashMap<Long, MessageInstance>();
+            collect(deliveryTag, multiple, ackedMessageMap);
+            remove(ackedMessageMap);
+            List<MessageInstance> acknowledged = new ArrayList<>();
+            for (MessageInstance instance : ackedMessageMap.values())
             {
-                acknowledged.add(instance);
+                if (instance.lockAcquisition())
+                {
+                    acknowledged.add(instance);
+                }
             }
+            return acknowledged;
+        }
+        else
+        {
+            MessageInstance instance;
+            synchronized (_lock)
+            {
+                instance = remove(deliveryTag);
+            }
+            if(instance != null && instance.lockAcquisition())
+            {
+                return Collections.singleton(instance);
+            }
+            else
+            {
+                return Collections.emptySet();
+            }
+
         }
-        return acknowledged;
     }
 
     private void collect(long key, Map<Long, MessageInstance> msgs)

Modified: 
qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/FieldTable.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/FieldTable.java?rev=1709868&r1=1709867&r2=1709868&view=diff
==============================================================================
--- 
qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/FieldTable.java 
(original)
+++ 
qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/FieldTable.java 
Wed Oct 21 15:51:32 2015
@@ -52,7 +52,7 @@ public class FieldTable
     private static final boolean STRICT_AMQP = 
Boolean.valueOf(System.getProperty(STRICT_AMQP_NAME, "false"));
 
     private QpidByteBuffer _encodedForm;
-    private LinkedHashMap<AMQShortString, AMQTypedValue> _properties = null;
+    private Map<AMQShortString, AMQTypedValue> _properties = null;
     private long _encodedSize;
     private static final int INITIAL_HASHMAP_CAPACITY = 16;
     private static final int INITIAL_ENCODED_FORM_SIZE = 256;
@@ -966,7 +966,7 @@ public class FieldTable
             {
                 if (_encodedForm != null)
                 {
-                    _properties = new LinkedHashMap<>();
+                    _properties = Collections.emptyMap();
                 }
             }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to