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);
         }
     }

Reply via email to