From 9c1782d39702b8bf8b8380faedc75048ef8bd9b7 Mon Sep 17 00:00:00 2001 From: Tyler Hobbs Date: Fri, 27 Jun 2014 09:35:53 -0500 Subject: [PATCH] Backport CASSANDRA-7454 to 2.1.0 --- CHANGES.txt | 1 + .../apache/cassandra/transport/messages/ExecuteMessage.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 81a35cd90b..ff417b1b08 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -9,6 +9,7 @@ * Support conditional updates, tuple type, and the v3 protocol in cqlsh (CASSANDRA-7509) * Handle queries on multiple secondary index types (CASSANDRA-7525) * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564) + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454) Merged from 2.0: * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541) * Fix range merging when DES scores are zero (CASSANDRA-7535) diff --git a/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java b/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java index d618f43927..78182b2891 100644 --- a/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java @@ -102,12 +102,12 @@ public class ExecuteMessage extends Message.Request { QueryHandler handler = state.getClientState().getCQLQueryHandler(); ParsedStatement.Prepared prepared = handler.getPrepared(statementId); + if (prepared == null) + throw new PreparedQueryNotFoundException(statementId); + options.prepare(prepared.boundNames); CQLStatement statement = prepared.statement; - if (statement == null) - throw new PreparedQueryNotFoundException(statementId); - if (options.getPageSize() == 0) throw new ProtocolException("The page size cannot be 0");