public abstract class org.apache.cassandra.cql3.functions.UDFunction extends org.apache.cassandra.cql3.functions.AbstractFunction implements org.apache.cassandra.cql3.functions.ScalarFunction
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.cql3.functions.UDFunction
super_class: org.apache.cassandra.cql3.functions.AbstractFunction
{
protected static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
static final java.lang.management.ThreadMXBean threadMXBean;
descriptor: Ljava/lang/management/ThreadMXBean;
flags: (0x0018) ACC_STATIC, ACC_FINAL
protected final java.util.List<org.apache.cassandra.cql3.ColumnIdentifier> argNames;
descriptor: Ljava/util/List;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
protected final java.lang.String language;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.lang.String body;
descriptor: Ljava/lang/String;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final com.datastax.driver.core.TypeCodec<java.lang.Object>[] argCodecs;
descriptor: [Lcom/datastax/driver/core/TypeCodec;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: [Lcom/datastax/driver/core/TypeCodec<Ljava/lang/Object;>;
protected final com.datastax.driver.core.TypeCodec<java.lang.Object> returnCodec;
descriptor: Lcom/datastax/driver/core/TypeCodec;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Lcom/datastax/driver/core/TypeCodec<Ljava/lang/Object;>;
protected final boolean calledOnNullInput;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final org.apache.cassandra.cql3.functions.UDFContext udfContext;
descriptor: Lorg/apache/cassandra/cql3/functions/UDFContext;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private static final java.lang.String[] whitelistedPatterns;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String[] blacklistedPatterns;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.lang.ClassLoader udfClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/cql3/functions/UDFunction;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.cql3.functions.UDFunction.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/cql3/functions/UDFunction;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
4: invokestatic java.lang.management.ManagementFactory.getThreadMXBean:()Ljava/lang/management/ThreadMXBean;
putstatic org.apache.cassandra.cql3.functions.UDFunction.threadMXBean:Ljava/lang/management/ThreadMXBean;
5: bipush 21
anewarray java.lang.String
dup
iconst_0
6: ldc "com/datastax/driver/core/"
aastore
dup
iconst_1
7: ldc "com/google/common/reflect/TypeToken"
aastore
dup
iconst_2
8: ldc "java/io/IOException.class"
aastore
dup
iconst_3
9: ldc "java/io/Serializable.class"
aastore
dup
iconst_4
10: ldc "java/lang/"
aastore
dup
iconst_5
11: ldc "java/math/"
aastore
dup
bipush 6
12: ldc "java/net/InetAddress.class"
aastore
dup
bipush 7
13: ldc "java/net/Inet4Address.class"
aastore
dup
bipush 8
14: ldc "java/net/Inet6Address.class"
aastore
dup
bipush 9
15: ldc "java/net/UnknownHostException.class"
aastore
dup
bipush 10
16: ldc "java/net/NetworkInterface.class"
aastore
dup
bipush 11
17: ldc "java/net/SocketException.class"
aastore
dup
bipush 12
18: ldc "java/nio/Buffer.class"
aastore
dup
bipush 13
19: ldc "java/nio/ByteBuffer.class"
aastore
dup
bipush 14
20: ldc "java/text/"
aastore
dup
bipush 15
21: ldc "java/time/"
aastore
dup
bipush 16
22: ldc "java/util/"
aastore
dup
bipush 17
23: ldc "org/apache/cassandra/cql3/functions/JavaUDF.class"
aastore
dup
bipush 18
24: ldc "org/apache/cassandra/cql3/functions/UDFContext.class"
aastore
dup
bipush 19
25: ldc "org/apache/cassandra/exceptions/"
aastore
dup
bipush 20
26: ldc "org/apache/cassandra/transport/ProtocolVersion.class"
aastore
27: putstatic org.apache.cassandra.cql3.functions.UDFunction.whitelistedPatterns:[Ljava/lang/String;
28: bipush 34
anewarray java.lang.String
dup
iconst_0
29: ldc "com/datastax/driver/core/Cluster.class"
aastore
dup
iconst_1
30: ldc "com/datastax/driver/core/Metrics.class"
aastore
dup
iconst_2
31: ldc "com/datastax/driver/core/NettyOptions.class"
aastore
dup
iconst_3
32: ldc "com/datastax/driver/core/Session.class"
aastore
dup
iconst_4
33: ldc "com/datastax/driver/core/Statement.class"
aastore
dup
iconst_5
34: ldc "com/datastax/driver/core/TimestampGenerator.class"
aastore
dup
bipush 6
35: ldc "java/lang/Compiler.class"
aastore
dup
bipush 7
36: ldc "java/lang/InheritableThreadLocal.class"
aastore
dup
bipush 8
37: ldc "java/lang/Package.class"
aastore
dup
bipush 9
38: ldc "java/lang/Process.class"
aastore
dup
bipush 10
39: ldc "java/lang/ProcessBuilder.class"
aastore
dup
bipush 11
40: ldc "java/lang/ProcessEnvironment.class"
aastore
dup
bipush 12
41: ldc "java/lang/ProcessImpl.class"
aastore
dup
bipush 13
42: ldc "java/lang/Runnable.class"
aastore
dup
bipush 14
43: ldc "java/lang/Runtime.class"
aastore
dup
bipush 15
44: ldc "java/lang/Shutdown.class"
aastore
dup
bipush 16
45: ldc "java/lang/Thread.class"
aastore
dup
bipush 17
46: ldc "java/lang/ThreadGroup.class"
aastore
dup
bipush 18
47: ldc "java/lang/ThreadLocal.class"
aastore
dup
bipush 19
48: ldc "java/lang/instrument/"
aastore
dup
bipush 20
49: ldc "java/lang/invoke/"
aastore
dup
bipush 21
50: ldc "java/lang/management/"
aastore
dup
bipush 22
51: ldc "java/lang/ref/"
aastore
dup
bipush 23
52: ldc "java/lang/reflect/"
aastore
dup
bipush 24
53: ldc "java/util/ServiceLoader.class"
aastore
dup
bipush 25
54: ldc "java/util/Timer.class"
aastore
dup
bipush 26
55: ldc "java/util/concurrent/"
aastore
dup
bipush 27
56: ldc "java/util/function/"
aastore
dup
bipush 28
57: ldc "java/util/jar/"
aastore
dup
bipush 29
58: ldc "java/util/logging/"
aastore
dup
bipush 30
59: ldc "java/util/prefs/"
aastore
dup
bipush 31
60: ldc "java/util/spi/"
aastore
dup
bipush 32
61: ldc "java/util/stream/"
aastore
dup
bipush 33
62: ldc "java/util/zip/"
aastore
63: putstatic org.apache.cassandra.cql3.functions.UDFunction.blacklistedPatterns:[Ljava/lang/String;
64: new org.apache.cassandra.cql3.functions.UDFunction$UDFClassLoader
dup
invokespecial org.apache.cassandra.cql3.functions.UDFunction$UDFClassLoader.<init>:()V
putstatic org.apache.cassandra.cql3.functions.UDFunction.udfClassLoader:Ljava/lang/ClassLoader;
return
LocalVariableTable:
Start End Slot Name Signature
static boolean secureResource(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=9, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 0
2: StackMap locals:
StackMap stack:
aload 0
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 1
3: getstatic org.apache.cassandra.cql3.functions.UDFunction.whitelistedPatterns:[Ljava/lang/String;
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 15
StackMap locals: java.lang.String top int int java.lang.String[]
StackMap stack:
4: aload 4
iload 2
aaload
astore 1
start local 1 5: aload 0
aload 1
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
6: getstatic org.apache.cassandra.cql3.functions.UDFunction.blacklistedPatterns:[Ljava/lang/String;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 12
StackMap locals: java.lang.String java.lang.String int int java.lang.String[] top int int java.lang.String[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 0
aload 5
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 11
9: getstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
ldc "access denied: resource {}"
aload 0
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
10: iconst_0
ireturn
end local 5 11: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 7
if_icmplt 7
13: iconst_1
ireturn
end local 1 14: StackMap locals: java.lang.String top int int java.lang.String[]
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
15: iload 2
iload 3
if_icmplt 4
16: getstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
ldc "access denied: resource {}"
aload 0
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
17: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 resource Ljava/lang/String;
5 14 1 white Ljava/lang/String;
8 11 5 black Ljava/lang/String;
MethodParameters:
Name Flags
resource
protected void <init>(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.cql3.ColumnIdentifier>, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, boolean, java.lang.String, java.lang.String);
descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=10, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
aload 3
aload 3
invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverTypes:(Ljava/util/List;)[Lcom/datastax/driver/core/DataType;
aload 4
1: aload 4
invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverType:(Lorg/apache/cassandra/db/marshal/AbstractType;)Lcom/datastax/driver/core/DataType;
iload 5
aload 6
aload 7
invokespecial org.apache.cassandra.cql3.functions.UDFunction.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;[Lcom/datastax/driver/core/DataType;Lorg/apache/cassandra/db/marshal/AbstractType;Lcom/datastax/driver/core/DataType;ZLjava/lang/String;Ljava/lang/String;)V
2: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 3 1 name Lorg/apache/cassandra/cql3/functions/FunctionName;
0 3 2 argNames Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
0 3 3 argTypes Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
0 3 4 returnType Lorg/apache/cassandra/db/marshal/AbstractType<*>;
0 3 5 calledOnNullInput Z
0 3 6 language Ljava/lang/String;
0 3 7 body Ljava/lang/String;
Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;ZLjava/lang/String;Ljava/lang/String;)V
MethodParameters:
Name Flags
name
argNames
argTypes
returnType
calledOnNullInput
language
body
protected void <init>(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.cql3.ColumnIdentifier>, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, com.datastax.driver.core.DataType[], org.apache.cassandra.db.marshal.AbstractType<?>, com.datastax.driver.core.DataType, boolean, java.lang.String, java.lang.String);
descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;[Lcom/datastax/driver/core/DataType;Lorg/apache/cassandra/db/marshal/AbstractType;Lcom/datastax/driver/core/DataType;ZLjava/lang/String;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=11, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
aload 1
aload 3
aload 5
invokespecial org.apache.cassandra.cql3.functions.AbstractFunction.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;)V
1: getstatic org.apache.cassandra.cql3.functions.UDFunction.$assertionsDisabled:Z
ifne 2
new java.util.HashSet
dup
aload 2
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.HashSet.size:()I
aload 2
invokeinterface java.util.List.size:()I
if_icmpeq 2
new java.lang.AssertionError
dup
ldc "duplicate argument names"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.FunctionName java.util.List java.util.List com.datastax.driver.core.DataType[] org.apache.cassandra.db.marshal.AbstractType com.datastax.driver.core.DataType int java.lang.String java.lang.String
StackMap stack:
aload 0
aload 2
putfield org.apache.cassandra.cql3.functions.UDFunction.argNames:Ljava/util/List;
3: aload 0
aload 8
putfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
4: aload 0
aload 9
putfield org.apache.cassandra.cql3.functions.UDFunction.body:Ljava/lang/String;
5: aload 0
aload 4
invokestatic org.apache.cassandra.cql3.functions.UDHelper.codecsFor:([Lcom/datastax/driver/core/DataType;)[Lcom/datastax/driver/core/TypeCodec;
putfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
6: aload 0
aload 6
invokestatic org.apache.cassandra.cql3.functions.UDHelper.codecFor:(Lcom/datastax/driver/core/DataType;)Lcom/datastax/driver/core/TypeCodec;
putfield org.apache.cassandra.cql3.functions.UDFunction.returnCodec:Lcom/datastax/driver/core/TypeCodec;
7: aload 0
iload 7
putfield org.apache.cassandra.cql3.functions.UDFunction.calledOnNullInput:Z
8: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
aload 1
getfield org.apache.cassandra.cql3.functions.FunctionName.keyspace:Ljava/lang/String;
invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
astore 10
start local 10 9: aload 0
new org.apache.cassandra.cql3.functions.UDFContextImpl
dup
aload 2
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.returnCodec:Lcom/datastax/driver/core/TypeCodec;
10: aload 10
invokespecial org.apache.cassandra.cql3.functions.UDFContextImpl.<init>:(Ljava/util/List;[Lcom/datastax/driver/core/TypeCodec;Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
11: putfield org.apache.cassandra.cql3.functions.UDFunction.udfContext:Lorg/apache/cassandra/cql3/functions/UDFContext;
12: return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 13 1 name Lorg/apache/cassandra/cql3/functions/FunctionName;
0 13 2 argNames Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
0 13 3 argTypes Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
0 13 4 argDataTypes [Lcom/datastax/driver/core/DataType;
0 13 5 returnType Lorg/apache/cassandra/db/marshal/AbstractType<*>;
0 13 6 returnDataType Lcom/datastax/driver/core/DataType;
0 13 7 calledOnNullInput Z
0 13 8 language Ljava/lang/String;
0 13 9 body Ljava/lang/String;
9 13 10 keyspaceMetadata Lorg/apache/cassandra/schema/KeyspaceMetadata;
Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;[Lcom/datastax/driver/core/DataType;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Lcom/datastax/driver/core/DataType;ZLjava/lang/String;Ljava/lang/String;)V
MethodParameters:
Name Flags
name
argNames
argTypes
argDataTypes
returnType
returnDataType
calledOnNullInput
language
body
public static org.apache.cassandra.cql3.functions.UDFunction create(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.cql3.ColumnIdentifier>, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, boolean, java.lang.String, java.lang.String);
descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 5
invokestatic org.apache.cassandra.cql3.functions.UDFunction.assertUdfsEnabled:(Ljava/lang/String;)V
1: aload 5
dup
astore 7
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 1
3254818: 2
default: 4
}
StackMap locals: java.lang.String
StackMap stack:
2: aload 7
ldc "java"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
goto 4
3: StackMap locals:
StackMap stack:
new org.apache.cassandra.cql3.functions.JavaBasedUDFunction
dup
aload 0
aload 1
aload 2
aload 3
iload 4
aload 6
invokespecial org.apache.cassandra.cql3.functions.JavaBasedUDFunction.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new org.apache.cassandra.cql3.functions.ScriptBasedUDFunction
dup
aload 0
aload 1
aload 2
aload 3
iload 4
aload 5
aload 6
invokespecial org.apache.cassandra.cql3.functions.ScriptBasedUDFunction.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;Ljava/lang/String;)V
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 name Lorg/apache/cassandra/cql3/functions/FunctionName;
0 5 1 argNames Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
0 5 2 argTypes Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
0 5 3 returnType Lorg/apache/cassandra/db/marshal/AbstractType<*>;
0 5 4 calledOnNullInput Z
0 5 5 language Ljava/lang/String;
0 5 6 body Ljava/lang/String;
Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;ZLjava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFunction;
MethodParameters:
Name Flags
name
argNames
argTypes
returnType
calledOnNullInput
language
body
public static org.apache.cassandra.cql3.functions.UDFunction createBrokenFunction(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.cql3.ColumnIdentifier>, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, boolean, java.lang.String, java.lang.String, org.apache.cassandra.exceptions.InvalidRequestException);
descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/exceptions/InvalidRequestException;)Lorg/apache/cassandra/cql3/functions/UDFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: new org.apache.cassandra.cql3.functions.UDFunction$1
dup
aload 0
aload 1
aload 2
aload 3
iload 4
aload 5
aload 6
aload 7
invokespecial org.apache.cassandra.cql3.functions.UDFunction$1.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;ZLjava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/exceptions/InvalidRequestException;)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 name Lorg/apache/cassandra/cql3/functions/FunctionName;
0 1 1 argNames Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
0 1 2 argTypes Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
0 1 3 returnType Lorg/apache/cassandra/db/marshal/AbstractType<*>;
0 1 4 calledOnNullInput Z
0 1 5 language Ljava/lang/String;
0 1 6 body Ljava/lang/String;
0 1 7 reason Lorg/apache/cassandra/exceptions/InvalidRequestException;
Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;ZLjava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/exceptions/InvalidRequestException;)Lorg/apache/cassandra/cql3/functions/UDFunction;
MethodParameters:
Name Flags
name
argNames
argTypes
returnType
calledOnNullInput
language
body
reason
public final java.nio.ByteBuffer execute(org.apache.cassandra.transport.ProtocolVersion, java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
invokestatic org.apache.cassandra.cql3.functions.UDFunction.assertUdfsEnabled:(Ljava/lang/String;)V
1: aload 0
aload 2
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.isCallableWrtNullable:(Ljava/util/List;)Z
ifne 3
2: aconst_null
areturn
3: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 3
start local 3 4: aload 0
aload 2
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.makeEmptyParametersNull:(Ljava/util/List;)Ljava/util/List;
astore 2
5: invokestatic org.apache.cassandra.config.DatabaseDescriptor.enableUserDefinedFunctionsThreads:()Z
ifeq 7
6: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeAsync:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
goto 8
7: StackMap locals: long
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeUserDefined:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
8: StackMap locals:
StackMap stack: java.nio.ByteBuffer
astore 5
start local 5 9: ldc "Executed UDF {} in {}\u03BCs"
aload 0
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
invokestatic java.lang.System.nanoTime:()J
lload 3
lsub
ldc 1000
ldiv
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
10: aload 5
11: areturn
end local 5 12: StackMap locals:
StackMap stack: org.apache.cassandra.exceptions.InvalidRequestException
astore 5
start local 5 13: aload 5
athrow
end local 5 14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 15: getstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
ldc "Invocation of user-defined function '{}' failed"
aload 0
aload 5
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
16: aload 5
instanceof java.lang.VirtualMachineError
ifeq 18
17: aload 5
checkcast java.lang.VirtualMachineError
athrow
18: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 5
invokestatic org.apache.cassandra.exceptions.FunctionExecutionException.create:(Lorg/apache/cassandra/cql3/functions/Function;Ljava/lang/Throwable;)Lorg/apache/cassandra/exceptions/FunctionExecutionException;
athrow
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 19 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 19 2 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
4 19 3 tStart J
9 12 5 result Ljava/nio/ByteBuffer;
13 14 5 e Lorg/apache/cassandra/exceptions/InvalidRequestException;
15 19 5 t Ljava/lang/Throwable;
Exception table:
from to target type
5 11 12 Class org.apache.cassandra.exceptions.InvalidRequestException
5 11 14 Class java.lang.Throwable
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
protocolVersion
parameters
public final executeForAggregate(org.apache.cassandra.transport.ProtocolVersion, , java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
invokestatic org.apache.cassandra.cql3.functions.UDFunction.assertUdfsEnabled:(Ljava/lang/String;)V
1: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.calledOnNullInput:Z
ifne 2
aload 2
ifnull 3
StackMap locals:
StackMap stack:
2: aload 0
aload 3
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.isCallableWrtNullable:(Ljava/util/List;)Z
ifne 4
3: StackMap locals:
StackMap stack:
aconst_null
areturn
4: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 4
start local 4 5: aload 0
aload 3
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.makeEmptyParametersNull:(Ljava/util/List;)Ljava/util/List;
astore 3
6: invokestatic org.apache.cassandra.config.DatabaseDescriptor.enableUserDefinedFunctionsThreads:()Z
ifeq 8
7: aload 0
aload 1
aload 2
aload 3
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeAggregateAsync:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
goto 9
8: StackMap locals: long
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeAggregateUserDefined:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
9: StackMap locals:
StackMap stack: java.lang.Object
astore 6
start local 6 10: ldc "Executed UDF {} in {}\u03BCs"
aload 0
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.name:()Lorg/apache/cassandra/cql3/functions/FunctionName;
invokestatic java.lang.System.nanoTime:()J
lload 4
lsub
ldc 1000
ldiv
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
11: aload 6
12: areturn
end local 6 13: StackMap locals:
StackMap stack: org.apache.cassandra.exceptions.InvalidRequestException
astore 6
start local 6 14: aload 6
athrow
end local 6 15: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
start local 6 16: getstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
ldc "Invocation of user-defined function '{}' failed"
aload 0
aload 6
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
17: aload 6
instanceof java.lang.VirtualMachineError
ifeq 19
18: aload 6
checkcast java.lang.VirtualMachineError
athrow
19: StackMap locals: java.lang.Throwable
StackMap stack:
aload 0
aload 6
invokestatic org.apache.cassandra.exceptions.FunctionExecutionException.create:(Lorg/apache/cassandra/cql3/functions/Function;Ljava/lang/Throwable;)Lorg/apache/cassandra/exceptions/FunctionExecutionException;
athrow
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 20 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 20 2 firstParam Ljava/lang/Object;
0 20 3 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
5 20 4 tStart J
10 13 6 result Ljava/lang/Object;
14 15 6 e Lorg/apache/cassandra/exceptions/InvalidRequestException;
16 20 6 t Ljava/lang/Throwable;
Exception table:
from to target type
6 12 13 Class org.apache.cassandra.exceptions.InvalidRequestException
6 12 15 Class java.lang.Throwable
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
protocolVersion
firstParam
parameters
public static void assertUdfsEnabled(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: invokestatic org.apache.cassandra.config.DatabaseDescriptor.enableUserDefinedFunctions:()Z
ifne 2
1: new org.apache.cassandra.exceptions.InvalidRequestException
dup
ldc "User-defined functions are disabled in cassandra.yaml - set enable_user_defined_functions=true to enable"
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
ldc "java"
aload 0
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 4
invokestatic org.apache.cassandra.config.DatabaseDescriptor.enableScriptedUserDefinedFunctions:()Z
ifne 4
3: new org.apache.cassandra.exceptions.InvalidRequestException
dup
ldc "Scripted user-defined functions are disabled in cassandra.yaml - set enable_scripted_user_defined_functions=true to enable if you are aware of the security risks"
invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 language Ljava/lang/String;
MethodParameters:
Name Flags
language
static void initializeThread();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.datastax.driver.core.TypeCodec.inet:()Lcom/datastax/driver/core/TypeCodec;
invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
invokevirtual com.datastax.driver.core.TypeCodec.format:(Ljava/lang/Object;)Ljava/lang/String;
pop
1: invokestatic com.datastax.driver.core.TypeCodec.ascii:()Lcom/datastax/driver/core/TypeCodec;
ldc ""
invokevirtual com.datastax.driver.core.TypeCodec.format:(Ljava/lang/Object;)Ljava/lang/String;
pop
2: return
LocalVariableTable:
Start End Slot Name Signature
private java.nio.ByteBuffer executeAsync(org.apache.cassandra.transport.ProtocolVersion, java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime
dup
invokespecial org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.<init>:()V
astore 3
start local 3 1: aload 0
aload 3
aload 0
aload 3
aload 1
aload 2
invokedynamic call(Lorg/apache/cassandra/cql3/functions/UDFunction;Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/apache/cassandra/cql3/functions/UDFunction.lambda$0(Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer; (7)
()Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.async:(Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Ljava/util/concurrent/Callable;)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 2 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 2 2 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
1 2 3 threadIdAndCpuTime Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
protocolVersion
parameters
private executeAggregateAsync(org.apache.cassandra.transport.ProtocolVersion, , java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime
dup
invokespecial org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.<init>:()V
astore 4
start local 4 1: aload 0
aload 4
aload 0
aload 4
aload 1
aload 2
aload 3
invokedynamic call(Lorg/apache/cassandra/cql3/functions/UDFunction;Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/apache/cassandra/cql3/functions/UDFunction.lambda$1(Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object; (7)
()Ljava/lang/Object;
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.async:(Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Ljava/util/concurrent/Callable;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 2 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 2 2 firstParam Ljava/lang/Object;
0 2 3 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
1 2 4 threadIdAndCpuTime Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
protocolVersion
firstParam
parameters
private <T> T async(org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime, java.util.concurrent.Callable<T>);
descriptor: (Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Ljava/util/concurrent/Callable;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executor:()Ljava/util/concurrent/ExecutorService;
aload 2
invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
astore 3
start local 3 1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionWarnTimeout:()J
lconst_0
lcmp
ifle 8
2: aload 3
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionWarnTimeout:()J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.Future.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
3: areturn
4: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future
StackMap stack: java.util.concurrent.TimeoutException
pop
5: ldc "User defined function %s ran longer than %dms"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionWarnTimeout:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
astore 4
start local 4 6: getstatic org.apache.cassandra.cql3.functions.UDFunction.logger:Lorg/slf4j/Logger;
aload 4
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
7: getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
aload 4
invokevirtual org.apache.cassandra.service.ClientWarn.warn:(Ljava/lang/String;)V
end local 4 8: StackMap locals:
StackMap stack:
aload 3
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionFailTimeout:()J
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionWarnTimeout:()J
lsub
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokeinterface java.util.concurrent.Future.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
9: areturn
10: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 4
start local 4 11: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
12: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 13: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
astore 4
start local 4 14: aload 4
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
astore 5
start local 5 15: aload 5
instanceof java.lang.RuntimeException
ifeq 17
16: aload 5
checkcast java.lang.RuntimeException
athrow
17: StackMap locals: java.util.concurrent.ExecutionException java.lang.Throwable
StackMap stack:
new java.lang.RuntimeException
dup
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 end local 4 18: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future
StackMap stack: java.util.concurrent.TimeoutException
astore 4
start local 4 19: aload 1
lconst_1
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
pop
20: getstatic org.apache.cassandra.cql3.functions.UDFunction.threadMXBean:Ljava/lang/management/ThreadMXBean;
aload 1
getfield org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.threadId:J
invokeinterface java.lang.management.ThreadMXBean.getThreadCpuTime:(J)J
aload 1
getfield org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.cpuTime:J
lsub
lstore 5
start local 5 21: lload 5
ldc 1000000
ldiv
lstore 5
22: aload 3
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionFailTimeout:()J
lload 5
lsub
lconst_0
invokestatic java.lang.Math.max:(JJ)J
23: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
24: invokeinterface java.util.concurrent.Future.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
25: areturn
end local 5 26: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future java.util.concurrent.TimeoutException
StackMap stack: java.lang.InterruptedException
pop
27: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
28: new java.lang.RuntimeException
dup
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
29: StackMap locals:
StackMap stack: java.util.concurrent.ExecutionException
pop
30: aload 4
invokevirtual java.util.concurrent.TimeoutException.getCause:()Ljava/lang/Throwable;
astore 5
start local 5 31: aload 5
instanceof java.lang.RuntimeException
ifeq 33
32: aload 5
checkcast java.lang.RuntimeException
athrow
33: StackMap locals: java.lang.Throwable
StackMap stack:
new java.lang.RuntimeException
dup
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 34: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future java.util.concurrent.TimeoutException
StackMap stack: java.util.concurrent.TimeoutException
pop
35: new java.util.concurrent.TimeoutException
dup
ldc "User defined function %s ran longer than %dms%s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
36: aload 0
aastore
dup
iconst_1
37: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserDefinedFunctionFailTimeout:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
38: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getUserFunctionTimeoutPolicy:()Lorg/apache/cassandra/config/Config$UserFunctionTimeoutPolicy;
getstatic org.apache.cassandra.config.Config$UserFunctionTimeoutPolicy.ignore:Lorg/apache/cassandra/config/Config$UserFunctionTimeoutPolicy;
if_acmpne 40
39: ldc ""
goto 41
StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future java.util.concurrent.TimeoutException
StackMap stack: new 35 new 35 java.lang.String java.lang.Object[] java.lang.Object[] int
40: ldc " - will stop Cassandra VM"
StackMap locals: org.apache.cassandra.cql3.functions.UDFunction org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime java.util.concurrent.Callable java.util.concurrent.Future java.util.concurrent.TimeoutException
StackMap stack: new 35 new 35 java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
41: aastore
42: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.util.concurrent.TimeoutException.<init>:(Ljava/lang/String;)V
astore 5
start local 5 43: aload 0
aload 5
invokestatic org.apache.cassandra.exceptions.FunctionExecutionException.create:(Lorg/apache/cassandra/cql3/functions/Function;Ljava/lang/Throwable;)Lorg/apache/cassandra/exceptions/FunctionExecutionException;
astore 6
start local 6 44: aload 5
invokestatic org.apache.cassandra.utils.JVMStabilityInspector.userFunctionTimeout:(Ljava/lang/Throwable;)V
45: aload 6
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 46 1 threadIdAndCpuTime Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;
0 46 2 callable Ljava/util/concurrent/Callable<TT;>;
1 46 3 future Ljava/util/concurrent/Future<TT;>;
6 8 4 warn Ljava/lang/String;
11 13 4 e Ljava/lang/InterruptedException;
14 18 4 e Ljava/util/concurrent/ExecutionException;
15 18 5 c Ljava/lang/Throwable;
19 46 4 e Ljava/util/concurrent/TimeoutException;
21 26 5 cpuTimeMillis J
31 34 5 c Ljava/lang/Throwable;
43 46 5 cause Ljava/util/concurrent/TimeoutException;
44 46 6 fe Lorg/apache/cassandra/exceptions/FunctionExecutionException;
Exception table:
from to target type
2 3 4 Class java.util.concurrent.TimeoutException
1 3 10 Class java.lang.InterruptedException
4 9 10 Class java.lang.InterruptedException
1 3 13 Class java.util.concurrent.ExecutionException
4 9 13 Class java.util.concurrent.ExecutionException
1 3 18 Class java.util.concurrent.TimeoutException
4 9 18 Class java.util.concurrent.TimeoutException
19 25 26 Class java.lang.InterruptedException
19 25 29 Class java.util.concurrent.ExecutionException
19 25 34 Class java.util.concurrent.TimeoutException
Signature: <T:Ljava/lang/Object;>(Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Ljava/util/concurrent/Callable<TT;>;)TT;
MethodParameters:
Name Flags
threadIdAndCpuTime
callable
private java.util.List<java.nio.ByteBuffer> makeEmptyParametersNull(java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 9
3: StackMap locals: java.util.List int
StackMap stack:
aload 1
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 4
start local 4 4: aload 2
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.db.marshal.AbstractType
aload 4
invokestatic org.apache.cassandra.cql3.functions.UDHelper.isNullOrEmpty:(Lorg/apache/cassandra/db/marshal/AbstractType;Ljava/nio/ByteBuffer;)Z
ifeq 6
5: aconst_null
goto 7
StackMap locals: org.apache.cassandra.cql3.functions.UDFunction java.util.List java.util.List int java.nio.ByteBuffer
StackMap stack: java.util.List
6: aload 4
7: StackMap locals: org.apache.cassandra.cql3.functions.UDFunction java.util.List java.util.List int java.nio.ByteBuffer
StackMap stack: java.util.List java.nio.ByteBuffer
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 8: iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 3 10: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 11 1 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
1 11 2 r Ljava/util/List<Ljava/nio/ByteBuffer;>;
2 10 3 i I
4 8 4 param Ljava/nio/ByteBuffer;
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/util/List<Ljava/nio/ByteBuffer;>;
MethodParameters:
Name Flags
parameters
protected abstract java.util.concurrent.ExecutorService executor();
descriptor: ()Ljava/util/concurrent/ExecutorService;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public boolean isCallableWrtNullable(java.util.List<java.nio.ByteBuffer>);
descriptor: (Ljava/util/List;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.calledOnNullInput:Z
ifne 7
1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.db.marshal.AbstractType
aload 1
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
invokestatic org.apache.cassandra.cql3.functions.UDHelper.isNullOrEmpty:(Lorg/apache/cassandra/db/marshal/AbstractType;Ljava/nio/ByteBuffer;)Z
ifeq 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 2 7: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 8 1 parameters Ljava/util/List<Ljava/nio/ByteBuffer;>;
2 7 2 i I
Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;)Z
MethodParameters:
Name Flags
parameters
protected abstract java.nio.ByteBuffer executeUserDefined(org.apache.cassandra.transport.ProtocolVersion, java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
protocolVersion
parameters
protected abstract executeAggregateUserDefined(org.apache.cassandra.transport.ProtocolVersion, , java.util.List<java.nio.ByteBuffer>);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List<Ljava/nio/ByteBuffer;>;)Ljava/lang/Object;
MethodParameters:
Name Flags
protocolVersion
firstParam
parameters
public boolean isAggregate();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
public boolean isNative();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
public boolean isCalledOnNullInput();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.calledOnNullInput:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
public java.util.List<org.apache.cassandra.cql3.ColumnIdentifier> argNames();
descriptor: ()Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argNames:Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
Signature: ()Ljava/util/List<Lorg/apache/cassandra/cql3/ColumnIdentifier;>;
public java.lang.String body();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.body:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
public java.lang.String language();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
protected java.lang.Object compose(org.apache.cassandra.transport.ProtocolVersion, int, java.nio.ByteBuffer);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;ILjava/nio/ByteBuffer;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
aload 1
iload 2
aload 3
invokestatic org.apache.cassandra.cql3.functions.UDFunction.compose:([Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;ILjava/nio/ByteBuffer;)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 1 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 1 2 argIndex I
0 1 3 value Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
protocolVersion
argIndex
value
protected static compose(com.datastax.driver.core.TypeCodec<java.lang.Object>[], org.apache.cassandra.transport.ProtocolVersion, int, java.nio.ByteBuffer);
descriptor: ([Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;ILjava/nio/ByteBuffer;)Ljava/lang/Object;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iload 2
aaload
aload 1
aload 3
invokestatic org.apache.cassandra.cql3.functions.UDHelper.deserialize:(Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/nio/ByteBuffer;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 codecs [Lcom/datastax/driver/core/TypeCodec;
0 3 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 3 2 argIndex I
0 3 3 value Ljava/nio/ByteBuffer;
Signature: ([Lcom/datastax/driver/core/TypeCodec<Ljava/lang/Object;>;Lorg/apache/cassandra/transport/ProtocolVersion;ILjava/nio/ByteBuffer;)Ljava/lang/Object;
MethodParameters:
Name Flags
codecs
protocolVersion
argIndex
value
protected java.nio.ByteBuffer decompose(org.apache.cassandra.transport.ProtocolVersion, java.lang.Object);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;)Ljava/nio/ByteBuffer;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.returnCodec:Lcom/datastax/driver/core/TypeCodec;
aload 1
aload 2
invokestatic org.apache.cassandra.cql3.functions.UDFunction.decompose:(Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;)Ljava/nio/ByteBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 1 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 1 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
protocolVersion
value
protected static java.nio.ByteBuffer decompose(com.datastax.driver.core.TypeCodec<java.lang.Object>, org.apache.cassandra.transport.ProtocolVersion, );
descriptor: (Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;)Ljava/nio/ByteBuffer;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 1
aload 2
invokestatic org.apache.cassandra.cql3.functions.UDHelper.serialize:(Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;)Ljava/nio/ByteBuffer;
StackMap locals:
StackMap stack: java.nio.ByteBuffer
2: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 codec Lcom/datastax/driver/core/TypeCodec<Ljava/lang/Object;>;
0 3 1 protocolVersion Lorg/apache/cassandra/transport/ProtocolVersion;
0 3 2 value Ljava/lang/Object;
Signature: (Lcom/datastax/driver/core/TypeCodec<Ljava/lang/Object;>;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;)Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
codec
protocolVersion
value
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.apache.cassandra.cql3.functions.UDFunction
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.apache.cassandra.cql3.functions.UDFunction
astore 2
start local 2 3: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 10
4: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argNames:Ljava/util/List;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.argNames:Ljava/util/List;
invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 10
5: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
invokestatic org.apache.cassandra.schema.Functions.typesMatch:(Ljava/util/List;Ljava/util/List;)Z
ifeq 10
6: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
invokestatic org.apache.cassandra.schema.Functions.typesMatch:(Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/db/marshal/AbstractType;)Z
ifeq 10
7: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 10
8: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.body:Ljava/lang/String;
aload 2
getfield org.apache.cassandra.cql3.functions.UDFunction.body:Ljava/lang/String;
invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 10
9: iconst_1
ireturn
StackMap locals: org.apache.cassandra.cql3.functions.UDFunction
StackMap stack:
10: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 11 1 o Ljava/lang/Object;
3 11 2 that Lorg/apache/cassandra/cql3/functions/UDFunction;
MethodParameters:
Name Flags
o
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: bipush 6
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
aastore
dup
iconst_1
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
invokestatic org.apache.cassandra.schema.Functions.typeHashCode:(Ljava/util/List;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
invokestatic org.apache.cassandra.schema.Functions.typeHashCode:(Lorg/apache/cassandra/db/marshal/AbstractType;)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
aastore
dup
iconst_4
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.language:Ljava/lang/String;
aastore
dup
iconst_5
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.body:Ljava/lang/String;
aastore
invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
public void userTypeUpdated(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 15
3: StackMap locals: int int
StackMap stack:
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
iload 4
aaload
invokevirtual com.datastax.driver.core.TypeCodec.getCqlType:()Lcom/datastax/driver/core/DataType;
astore 5
start local 5 4: aload 5
instanceof com.datastax.driver.core.UserType
ifeq 14
5: aload 5
checkcast com.datastax.driver.core.UserType
astore 6
start local 6 6: aload 6
invokevirtual com.datastax.driver.core.UserType.getKeyspace:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
aload 6
invokevirtual com.datastax.driver.core.UserType.getTypeName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
7: getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
aload 1
invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
astore 7
start local 7 8: getstatic org.apache.cassandra.cql3.functions.UDFunction.$assertionsDisabled:Z
ifne 9
aload 7
ifnonnull 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals: com.datastax.driver.core.DataType com.datastax.driver.core.UserType org.apache.cassandra.schema.KeyspaceMetadata
StackMap stack:
aload 7
getfield org.apache.cassandra.schema.KeyspaceMetadata.types:Lorg/apache/cassandra/schema/Types;
aload 2
invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
invokevirtual org.apache.cassandra.schema.Types.get:(Ljava/nio/ByteBuffer;)Ljava/util/Optional;
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast org.apache.cassandra.db.marshal.UserType
astore 8
start local 8 10: aload 8
invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverType:(Lorg/apache/cassandra/db/marshal/AbstractType;)Lcom/datastax/driver/core/DataType;
astore 9
start local 9 11: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
iload 4
aload 9
invokestatic org.apache.cassandra.cql3.functions.UDHelper.codecFor:(Lcom/datastax/driver/core/DataType;)Lcom/datastax/driver/core/TypeCodec;
aastore
12: aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argTypes:Ljava/util/List;
iload 4
aload 8
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
13: iconst_1
istore 3
end local 9 end local 8 end local 7 end local 6 end local 5 14: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
15: iload 4
aload 0
getfield org.apache.cassandra.cql3.functions.UDFunction.argCodecs:[Lcom/datastax/driver/core/TypeCodec;
arraylength
if_icmplt 3
end local 4 16: iload 3
ifeq 18
17: aload 0
iconst_1
invokestatic org.apache.cassandra.service.MigrationManager.announceNewFunction:(Lorg/apache/cassandra/cql3/functions/UDFunction;Z)V
18: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
0 19 1 ksName Ljava/lang/String;
0 19 2 typeName Ljava/lang/String;
1 19 3 updated Z
2 16 4 i I
4 14 5 dataType Lcom/datastax/driver/core/DataType;
6 14 6 userType Lcom/datastax/driver/core/UserType;
8 14 7 ksm Lorg/apache/cassandra/schema/KeyspaceMetadata;
10 14 8 ut Lorg/apache/cassandra/db/marshal/UserType;
11 14 9 newUserType Lcom/datastax/driver/core/DataType;
MethodParameters:
Name Flags
ksName
typeName
private java.nio.ByteBuffer lambda$0(org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime, org.apache.cassandra.transport.ProtocolVersion, java.util.List);
descriptor: (Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 0 0: aload 1
invokevirtual org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.setup:()V
1: aload 0
aload 2
aload 3
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeUserDefined:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/util/List;)Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
Exceptions:
throws java.lang.Exception
private java.lang.Object lambda$1(org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime, org.apache.cassandra.transport.ProtocolVersion, java.lang.Object, java.util.List);
descriptor: (Lorg/apache/cassandra/cql3/functions/UDFunction$ThreadIdAndCpuTime;Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=5, args_size=5
start local 0 0: aload 1
invokevirtual org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime.setup:()V
1: aload 0
aload 2
aload 3
aload 4
invokevirtual org.apache.cassandra.cql3.functions.UDFunction.executeAggregateUserDefined:(Lorg/apache/cassandra/transport/ProtocolVersion;Ljava/lang/Object;Ljava/util/List;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFunction;
Exceptions:
throws java.lang.Exception
}
SourceFile: "UDFunction.java"
NestMembers:
org.apache.cassandra.cql3.functions.UDFunction$1 org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime org.apache.cassandra.cql3.functions.UDFunction$UDFClassLoader
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final UserFunctionTimeoutPolicy = org.apache.cassandra.config.Config$UserFunctionTimeoutPolicy of org.apache.cassandra.config.Config
org.apache.cassandra.cql3.functions.UDFunction$1
private final ThreadIdAndCpuTime = org.apache.cassandra.cql3.functions.UDFunction$ThreadIdAndCpuTime of org.apache.cassandra.cql3.functions.UDFunction
private UDFClassLoader = org.apache.cassandra.cql3.functions.UDFunction$UDFClassLoader of org.apache.cassandra.cql3.functions.UDFunction