Updated Branches: refs/heads/trunk b7716c76b -> e232407ad
(cql3) protect against null prepared variables (and avoid flooding the log on InvalidException errors) Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e232407a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e232407a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e232407a Branch: refs/heads/trunk Commit: e232407adf534e54950c2766347d4a0321c039ad Parents: b7716c7 Author: Sylvain Lebresne <sylv...@datastax.com> Authored: Fri Oct 5 16:31:26 2012 +0200 Committer: Sylvain Lebresne <sylv...@datastax.com> Committed: Fri Oct 5 16:31:26 2012 +0200 ---------------------------------------------------------------------- src/java/org/apache/cassandra/cql3/Term.java | 3 +++ .../cassandra/transport/messages/ErrorMessage.java | 2 +- .../cassandra/transport/messages/QueryMessage.java | 10 ++-------- 3 files changed, 6 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e232407a/src/java/org/apache/cassandra/cql3/Term.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/Term.java b/src/java/org/apache/cassandra/cql3/Term.java index 3f46c35..dc180ce 100644 --- a/src/java/org/apache/cassandra/cql3/Term.java +++ b/src/java/org/apache/cassandra/cql3/Term.java @@ -127,6 +127,9 @@ public class Term throw new AssertionError("a marker Term was encountered with no index value"); ByteBuffer value = variables.get(bindIndex); + // We don't yet support null values in prepared statements + if (value == null) + throw new InvalidRequestException("Invalid null value for prepared variable " + bindIndex); validator.validate(value); return value; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e232407a/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java b/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java index 8ed8e94..b7b0bee 100644 --- a/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java @@ -181,7 +181,7 @@ public class ErrorMessage extends Message.Response return new ErrorMessage((TransportException)e); // Unexpected exception - logger.debug("Unexpected exception during request", e); + logger.error("Unexpected exception during request", e); return new ErrorMessage(new ServerError(e)); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/e232407a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java b/src/java/org/apache/cassandra/transport/messages/QueryMessage.java index c291e1d..0880ee0 100644 --- a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java +++ b/src/java/org/apache/cassandra/transport/messages/QueryMessage.java @@ -20,9 +20,7 @@ package org.apache.cassandra.transport.messages; import org.jboss.netty.buffer.ChannelBuffer; import org.apache.cassandra.cql3.QueryProcessor; -import org.apache.cassandra.exceptions.InvalidRequestException; -import org.apache.cassandra.exceptions.RequestTimeoutException; -import org.apache.cassandra.exceptions.UnavailableException; +import org.apache.cassandra.exceptions.*; import org.apache.cassandra.transport.*; /** @@ -65,12 +63,8 @@ public class QueryMessage extends Message.Request } catch (Exception e) { - if (!((e instanceof UnavailableException) - || (e instanceof InvalidRequestException) - || (e instanceof RequestTimeoutException))) - { + if (!((e instanceof RequestValidationException) || (e instanceof RequestExecutionException))) logger.error("Unexpected error during query", e); - } return ErrorMessage.fromException(e); } }