Merge branch 'cassandra-3.11' into trunk

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/243c371f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/243c371f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/243c371f

Branch: refs/heads/trunk
Commit: 243c371f4881be554439731cb809680a37c875ac
Parents: d500100 49e63c2
Author: Sylvain Lebresne <lebre...@gmail.com>
Authored: Wed Jul 4 12:10:05 2018 +0200
Committer: Sylvain Lebresne <lebre...@gmail.com>
Committed: Wed Jul 4 12:10:05 2018 +0200

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/db/context/CounterContext.java    |  3 +++
 .../apache/cassandra/db/CounterCellTest.java    | 24 +++++++++++++++++++-
 3 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/243c371f/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/243c371f/src/java/org/apache/cassandra/db/context/CounterContext.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/context/CounterContext.java
index 9b34231,b402464..29dc3f0
--- a/src/java/org/apache/cassandra/db/context/CounterContext.java
+++ b/src/java/org/apache/cassandra/db/context/CounterContext.java
@@@ -690,11 -690,14 +690,14 @@@ public class CounterContex
       * nodes. This means in particular that we always have:
       *  updateDigest(ctx) == updateDigest(clearAllLocal(ctx))
       */
 -    public void updateDigest(MessageDigest message, ByteBuffer context)
 +    public void updateDigest(Hasher hasher, ByteBuffer context)
      {
+         // context can be empty due to the optimization from CASSANDRA-10657
+         if (!context.hasRemaining())
+             return;
          ByteBuffer dup = context.duplicate();
          dup.position(context.position() + headerLength(context));
 -        message.update(dup);
 +        HashingUtils.updateBytes(hasher, dup);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/243c371f/test/unit/org/apache/cassandra/db/CounterCellTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/CounterCellTest.java
index b410427,5208cb2..0ee59e1
--- a/test/unit/org/apache/cassandra/db/CounterCellTest.java
+++ b/test/unit/org/apache/cassandra/db/CounterCellTest.java
@@@ -27,8 -28,8 +27,8 @@@ import org.junit.BeforeClass
  import org.junit.Test;
  
  import org.apache.cassandra.SchemaLoader;
- import org.apache.cassandra.net.MessagingService;
 -import org.apache.cassandra.config.ColumnDefinition;
 +import org.apache.cassandra.schema.ColumnMetadata;
+ import org.apache.cassandra.db.rows.BTreeRow;
  import org.apache.cassandra.db.rows.BufferCell;
  import org.apache.cassandra.db.rows.Cell;
  import org.apache.cassandra.db.rows.Cells;
@@@ -272,12 -275,32 +274,32 @@@ public class CounterCellTes
  
          Cell original = createCounterCellFromContext(cfs, col, state, 5);
  
 -        ColumnDefinition cDef = cfs.metadata.getColumnDefinition(col);
 +        ColumnMetadata cDef = cfs.metadata().getColumn(col);
          Cell cleared = BufferCell.live(cDef, 5, 
CounterContext.instance().clearAllLocal(state.context));
  
 -        original.digest(digest1);
 -        cleared.digest(digest2);
 +        original.digest(hasher1);
 +        cleared.digest(hasher2);
  
 -        assert Arrays.equals(digest1.digest(), digest2.digest());
 +        Assert.assertEquals(hasher1.hash(), hasher2.hash());
      }
+ 
+     @Test
+     public void testDigestWithEmptyCells() throws Exception
+     {
+         // For DB-1881
+         ColumnFamilyStore cfs = 
Keyspace.open(KEYSPACE1).getColumnFamilyStore(COUNTER1);
+ 
 -        ColumnDefinition emptyColDef = 
cfs.metadata.getColumnDefinition(ByteBufferUtil.bytes("val2"));
++        ColumnMetadata emptyColDef = 
cfs.metadata().getColumn(ByteBufferUtil.bytes("val2"));
+         BufferCell emptyCell = BufferCell.live(emptyColDef, 0, 
ByteBuffer.allocate(0));
+ 
+         Row.Builder builder = BTreeRow.unsortedBuilder(0);
+         
builder.newRow(Clustering.make(AsciiSerializer.instance.serialize("test")));
+         builder.addCell(emptyCell);
+         Row row = builder.build();
+ 
 -        MessageDigest digest = MessageDigest.getInstance("md5");
 -        row.digest(digest);
 -        assertNotNull(digest.digest());
++        Hasher hasher = HashingUtils.CURRENT_HASH_FUNCTION.newHasher();
++        row.digest(hasher);
++        assertNotNull(hasher.hash());
+     }
+ 
  }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to