You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/02/07 15:30:40 UTC

svn commit: r1067952 - in /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra: net/MessagingService.java service/StorageProxy.java utils/ExpiringMap.java

Author: jbellis
Date: Mon Feb  7 14:30:39 2011
New Revision: 1067952

URL: http://svn.apache.org/viewvc?rev=1067952&view=rev
Log:
avoid re-using Message object in index queries
patch by Aaron Morton; reviewed by jbellis for CASSANDRA-2081

Modified:
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ExpiringMap.java

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java?rev=1067952&r1=1067951&r2=1067952&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/net/MessagingService.java Mon Feb  7 14:30:39 2011
@@ -258,7 +258,8 @@ public final class MessagingService impl
 
     private void addCallback(IMessageCallback cb, String messageId, InetAddress to)
     {
-        callbacks.put(messageId, new Pair<InetAddress, IMessageCallback>(to, cb));
+        Pair<InetAddress, IMessageCallback> previous = callbacks.put(messageId, new Pair<InetAddress, IMessageCallback>(to, cb));
+        assert previous == null;
     }
 
     /**

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1067952&r1=1067951&r2=1067952&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java Mon Feb  7 14:30:39 2011
@@ -811,9 +811,9 @@ public class StorageProxy implements Sto
                 throw new UnavailableException();
             
             IndexScanCommand command = new IndexScanCommand(keyspace, column_family, index_clause, column_predicate, range);
-            Message message = command.getMessage();
             for (InetAddress endpoint : liveEndpoints)
             {
+                Message message = command.getMessage();
                 MessagingService.instance().sendRR(message, endpoint, handler);
                 if (logger.isDebugEnabled())
                     logger.debug("reading " + command + " from " + message.getMessageId() + "@" + endpoint);

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ExpiringMap.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ExpiringMap.java?rev=1067952&r1=1067951&r2=1067952&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ExpiringMap.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ExpiringMap.java Mon Feb  7 14:30:39 2011
@@ -107,9 +107,10 @@ public class ExpiringMap<K, V>
         timer.cancel();
     }
 
-    public void put(K key, V value)
+    public V put(K key, V value)
     {
-        cache.put(key, new CacheableObject<V>(value));
+        CacheableObject<V> previous = cache.put(key, new CacheableObject<V>(value));
+        return (previous == null) ? null : previous.getValue();
     }
 
     public V get(K key)