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 2012/03/29 16:33:49 UTC
[3/3] git commit: fix NPE on invalid CQL DELETE command
fix NPE on invalid CQL DELETE command
patch by dbrosius; reviewed by slebresne for CASSANDRA-3755
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b0dfb4cd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b0dfb4cd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b0dfb4cd
Branch: refs/heads/cassandra-1.1
Commit: b0dfb4cdc4717a4ba759cc3353e29cc76235d74e
Parents: 281af5e
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Mar 29 16:26:53 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Thu Mar 29 16:26:53 2012 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/cql/DeleteStatement.java | 7 ++++---
2 files changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b0dfb4cd/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c92a242..e4d207c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -13,6 +13,7 @@
* fix race leading to super columns assertion failure (CASSANDRA-3957)
* ensure that directory is selected for compaction for user-defined
tasks and upgradesstables (CASSANDRA-3985)
+ * fix NPE on invalid CQL delete command (CASSANDRA-3755)
1.0.8
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b0dfb4cd/src/java/org/apache/cassandra/cql/DeleteStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/DeleteStatement.java b/src/java/org/apache/cassandra/cql/DeleteStatement.java
index eb46076..1b33a01 100644
--- a/src/java/org/apache/cassandra/cql/DeleteStatement.java
+++ b/src/java/org/apache/cassandra/cql/DeleteStatement.java
@@ -74,6 +74,8 @@ public class DeleteStatement extends AbstractModification
/** {@inheritDoc} */
public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp) throws InvalidRequestException
{
+ CFMetaData metadata = validateColumnFamily(keyspace, columnFamily);
+
clientState.hasColumnFamilyAccess(columnFamily, Permission.WRITE);
AbstractType<?> keyType = Schema.instance.getCFMetaData(keyspace, columnFamily).getKeyValidator();
@@ -81,18 +83,17 @@ public class DeleteStatement extends AbstractModification
for (Term key : keys)
{
- rowMutations.add(mutationForKey(key.getByteBuffer(keyType), keyspace, timestamp, clientState));
+ rowMutations.add(mutationForKey(key.getByteBuffer(keyType), keyspace, timestamp, clientState, metadata));
}
return rowMutations;
}
/** {@inheritDoc} */
- public RowMutation mutationForKey(ByteBuffer key, String keyspace, Long timestamp, ClientState clientState) throws InvalidRequestException
+ public RowMutation mutationForKey(ByteBuffer key, String keyspace, Long timestamp, ClientState clientState, CFMetaData metadata) throws InvalidRequestException
{
RowMutation rm = new RowMutation(keyspace, key);
- CFMetaData metadata = validateColumnFamily(keyspace, columnFamily);
QueryProcessor.validateKeyAlias(metadata, keyName);
AbstractType comparator = metadata.getComparatorFor(null);