Repository: cassandra Updated Branches: refs/heads/trunk 16069c351 -> 1ed1af5b9
Verify that UDF class methods are static Patch by Tyler Hobbs; review by Robert Stupp for CASSANDRA-7781 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ed1af5b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ed1af5b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ed1af5b Branch: refs/heads/trunk Commit: 1ed1af5b9baaecf5810ce3ca176ed3b14c8893b8 Parents: 16069c3 Author: Tyler Hobbs <ty...@datastax.com> Authored: Tue Aug 19 11:09:57 2014 -0500 Committer: Tyler Hobbs <ty...@datastax.com> Committed: Tue Aug 19 11:09:57 2014 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/cql3/udf/UDFunction.java | 4 ++++ 2 files changed, 5 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ed1af5b/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 63077a7..92d784d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0 + * Verify that UDF class methods are static (CASSANDRA-7781) * Support pure user-defined functions (CASSANDRA-7395) * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416) * Move sstable RandomAccessReader to nio2, which allows using the http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ed1af5b/src/java/org/apache/cassandra/cql3/udf/UDFunction.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/udf/UDFunction.java b/src/java/org/apache/cassandra/cql3/udf/UDFunction.java index 4866c22..89f37d5 100644 --- a/src/java/org/apache/cassandra/cql3/udf/UDFunction.java +++ b/src/java/org/apache/cassandra/cql3/udf/UDFunction.java @@ -20,6 +20,7 @@ package org.apache.cassandra.cql3.udf; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; @@ -91,6 +92,9 @@ public class UDFunction Method method = cls.getMethod(methodName, paramTypes); + if (!Modifier.isStatic(method.getModifiers())) + throw new InvalidRequestException("Method " + className + '.' + methodName + '(' + Arrays.toString(paramTypes) + ") is not static"); + if (!jReturnType.isAssignableFrom(method.getReturnType())) { throw new InvalidRequestException("Method " + className + '.' + methodName + '(' + Arrays.toString(paramTypes) + ") " +