public final class org.apache.cassandra.cql3.functions.UDFByteCodeVerifier
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.cql3.functions.UDFByteCodeVerifier
super_class: java.lang.Object
{
public static final java.lang.String JAVA_UDF_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String OBJECT_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.String CTOR_SIG;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "(Lcom/datastax/driver/core/TypeCodec;[Lcom/datastax/driver/core/TypeCodec;Lorg/apache/cassandra/cql3/functions/UDFContext;)V"
private final java.util.Set<java.lang.String> disallowedClasses;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final com.google.common.collect.Multimap<java.lang.String, java.lang.String> disallowedMethodCalls;
descriptor: Lcom/google/common/collect/Multimap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/Multimap<Ljava/lang/String;Ljava/lang/String;>;
private final java.util.List<java.lang.String> disallowedPackages;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/cql3/functions/JavaUDF;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
putstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.JAVA_UDF_NAME:Ljava/lang/String;
1: ldc Ljava/lang/Object;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
putstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.disallowedClasses:Ljava/util/Set;
2: aload 0
invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
putfield org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.disallowedMethodCalls:Lcom/google/common/collect/Multimap;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.disallowedPackages:Ljava/util/List;
4: aload 0
getstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
ldc "clone"
invokevirtual org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.addDisallowedMethodCall:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
pop
5: aload 0
getstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
ldc "finalize"
invokevirtual org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.addDisallowedMethodCall:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
pop
6: aload 0
getstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
ldc "notify"
invokevirtual org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.addDisallowedMethodCall:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
pop
7: aload 0
getstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
ldc "notifyAll"
invokevirtual org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.addDisallowedMethodCall:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
pop
8: aload 0
getstatic org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.OBJECT_NAME:Ljava/lang/String;
ldc "wait"
invokevirtual org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.addDisallowedMethodCall:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
pop
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
public org.apache.cassandra.cql3.functions.UDFByteCodeVerifier addDisallowedClass(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.disallowedClasses:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
0 2 1 clazz Ljava/lang/String;
MethodParameters:
Name Flags
clazz
public org.apache.cassandra.cql3.functions.UDFByteCodeVerifier addDisallowedMethodCall(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
flags: (0x0001) ACC_PUBLIC
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.UDFByteCodeVerifier.disallowedMethodCalls:Lcom/google/common/collect/Multimap;
aload 1
aload 2
invokeinterface com.google.common.collect.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
0 2 1 clazz Ljava/lang/String;
0 2 2 method Ljava/lang/String;
MethodParameters:
Name Flags
clazz
method
public org.apache.cassandra.cql3.functions.UDFByteCodeVerifier addDisallowedPackage(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.cql3.functions.UDFByteCodeVerifier.disallowedPackages:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
0 2 1 pkg Ljava/lang/String;
MethodParameters:
Name Flags
pkg
public java.util.Set<java.lang.String> verify(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 3
start local 3 1: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 4
start local 4 2: new org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$1
dup
aload 0
ldc 327680
aload 4
aload 3
invokespecial org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$1.<init>:(Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;ILjava/util/Set;Ljava/lang/String;)V
astore 5
start local 5 3: new org.objectweb.asm.ClassReader
dup
aload 2
invokespecial org.objectweb.asm.ClassReader.<init>:([B)V
astore 6
start local 6 4: aload 6
aload 5
iconst_2
invokevirtual org.objectweb.asm.ClassReader.accept:(Lorg/objectweb/asm/ClassVisitor;I)V
5: aload 4
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 6 0 this Lorg/apache/cassandra/cql3/functions/UDFByteCodeVerifier;
0 6 1 clsName Ljava/lang/String;
0 6 2 bytes [B
1 6 3 clsNameSl Ljava/lang/String;
2 6 4 errors Ljava/util/Set<Ljava/lang/String;>;
3 6 5 classVisitor Lorg/objectweb/asm/ClassVisitor;
4 6 6 classReader Lorg/objectweb/asm/ClassReader;
Signature: (Ljava/lang/String;[B)Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
clsName
bytes
}
SourceFile: "UDFByteCodeVerifier.java"
NestMembers:
org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$1 org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$ConstructorVisitor org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$ExecuteImplVisitor
InnerClasses:
org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$1
private ConstructorVisitor = org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$ConstructorVisitor of org.apache.cassandra.cql3.functions.UDFByteCodeVerifier
private ExecuteImplVisitor = org.apache.cassandra.cql3.functions.UDFByteCodeVerifier$ExecuteImplVisitor of org.apache.cassandra.cql3.functions.UDFByteCodeVerifier