You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2014/02/28 08:49:28 UTC
[1/2] git commit: Fix ClassCastException for compact table with
composites
Repository: cassandra
Updated Branches:
refs/heads/trunk 30f438ff4 -> 1b644140c
Fix ClassCastException for compact table with composites
patch by slebresne; reviewed by iamaleksey for CASSANDRA-6738
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/15728ad8
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/15728ad8
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/15728ad8
Branch: refs/heads/trunk
Commit: 15728ad8dfbc8991acaf2bee6ad213a39330606a
Parents: 7e9cdff
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Feb 28 08:47:48 2014 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Fri Feb 28 08:47:48 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/db/composites/CompoundComposite.java | 6 +++++-
.../apache/cassandra/db/composites/CompoundDenseCellName.java | 5 +++++
.../cassandra/db/composites/CompoundDenseCellNameType.java | 3 +--
4 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/15728ad8/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4f91a0e..2bb67dd 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,7 @@
* Fix assertion error in ALTER TYPE RENAME (CASSANDRA-6705)
* Scrub should not always clear out repaired status (CASSANDRA-5351)
* Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
+ * Fix ClassCastException for compact table with composites (CASSANDRA-6738)
2.1.0-beta1
* Add flush directory distinct from compaction directories (CASSANDRA-6357)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/15728ad8/src/java/org/apache/cassandra/db/composites/CompoundComposite.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/CompoundComposite.java b/src/java/org/apache/cassandra/db/composites/CompoundComposite.java
index 9475cc0..cae1c9e 100644
--- a/src/java/org/apache/cassandra/db/composites/CompoundComposite.java
+++ b/src/java/org/apache/cassandra/db/composites/CompoundComposite.java
@@ -50,7 +50,11 @@ public class CompoundComposite extends AbstractComposite
public ByteBuffer get(int i)
{
- return elements[i];
+ // Note: most consumer should validate that i is within bounds. However, for backward compatibility
+ // reasons, composite dense tables can have names that don't have all their component of the clustering
+ // columns, which may end up here with i > size(). For those calls, it's actually simpler to return null
+ // than to force the caller to special case.
+ return i >= size() ? null : elements[i];
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/15728ad8/src/java/org/apache/cassandra/db/composites/CompoundDenseCellName.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/CompoundDenseCellName.java b/src/java/org/apache/cassandra/db/composites/CompoundDenseCellName.java
index e16e390..0f5b2f5 100644
--- a/src/java/org/apache/cassandra/db/composites/CompoundDenseCellName.java
+++ b/src/java/org/apache/cassandra/db/composites/CompoundDenseCellName.java
@@ -34,6 +34,11 @@ public class CompoundDenseCellName extends CompoundComposite implements CellName
super(elements, elements.length, false);
}
+ CompoundDenseCellName(ByteBuffer[] elements, int size)
+ {
+ super(elements, size, false);
+ }
+
public int clusteringSize()
{
return size;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/15728ad8/src/java/org/apache/cassandra/db/composites/CompoundDenseCellNameType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/CompoundDenseCellNameType.java b/src/java/org/apache/cassandra/db/composites/CompoundDenseCellNameType.java
index 06b25b0..635b997 100644
--- a/src/java/org/apache/cassandra/db/composites/CompoundDenseCellNameType.java
+++ b/src/java/org/apache/cassandra/db/composites/CompoundDenseCellNameType.java
@@ -69,8 +69,7 @@ public class CompoundDenseCellNameType extends AbstractCompoundCellNameType
if (size < fullSize || eoc != Composite.EOC.NONE)
return new CompoundComposite(components, size, false).withEOC(eoc);
- assert components.length == size;
- return new CompoundDenseCellName(components);
+ return new CompoundDenseCellName(components, size);
}
protected Composite copyAndMakeWith(ByteBuffer[] components, int size, Composite.EOC eoc, boolean isStatic)
[2/2] git commit: Merge branch 'cassandra-2.1' into trunk
Posted by sl...@apache.org.
Merge branch 'cassandra-2.1' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1b644140
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1b644140
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1b644140
Branch: refs/heads/trunk
Commit: 1b644140c7adf3c7059af7089ca1c6256dcfbef1
Parents: 30f438f 15728ad
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Fri Feb 28 08:49:21 2014 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Fri Feb 28 08:49:21 2014 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/db/composites/CompoundComposite.java | 6 +++++-
.../apache/cassandra/db/composites/CompoundDenseCellName.java | 5 +++++
.../cassandra/db/composites/CompoundDenseCellNameType.java | 3 +--
4 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/1b644140/CHANGES.txt
----------------------------------------------------------------------