Skip to content

Instantly share code, notes, and snippets.

@mattnworb
Created August 4, 2022 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattnworb/4dd3f7fd34089f4f701a9fb03c460596 to your computer and use it in GitHub Desktop.
Save mattnworb/4dd3f7fd34089f4f701a9fb03c460596 to your computer and use it in GitHub Desktop.
javap output for com/spotify/feline/Feline.class from futuristic-feline-1.1.1.jar
$ javap -v -p 'jar:file:///Users/mattbrown/.m2/repository/com/spotify/futuristic-feline/1.1.1/futuristic-feline-1.1.1.jar!/com/spotify/feline/Feline.class'
Classfile jar:file:///Users/mattbrown/.m2/repository/com/spotify/futuristic-feline/1.1.1/futuristic-feline-1.1.1.jar!/com/spotify/feline/Feline.class
Last modified Jun 10, 2022; size 9273 bytes
MD5 checksum 7f6651da5b4dcf1561076b0d6a284d42
Compiled from "Feline.java"
public class com.spotify.feline.Feline
minor version: 0
major version: 52
flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: #24 // com/spotify/feline/Feline
super_class: #68 // java/lang/Object
interfaces: 0, fields: 1, methods: 13, attributes: 3
Constant pool:
#1 = Methodref #68.#129 // java/lang/Object."<init>":()V
#2 = Methodref #130.#131 // com/spotify/feline/FelineRuntime.addConsumerFirst:(Ljava/util/function/Consumer;)V
#3 = Methodref #130.#132 // com/spotify/feline/FelineRuntime.addOnExitConsumerFirst:(Ljava/util/function/Consumer;)V
#4 = Methodref #130.#133 // com/spotify/feline/FelineRuntime.addConsumerLast:(Ljava/util/function/Consumer;)V
#5 = Methodref #130.#134 // com/spotify/feline/FelineRuntime.addOnExitConsumerLast:(Ljava/util/function/Consumer;)V
#6 = Methodref #130.#135 // com/spotify/feline/FelineRuntime.removeConsumer:(Ljava/util/function/Consumer;)Z
#7 = Methodref #130.#136 // com/spotify/feline/FelineRuntime.removeOnExitConsumer:(Ljava/util/function/Consumer;)Z
#8 = Fieldref #24.#137 // com/spotify/feline/Feline.allowances:Ljava/util/Map;
#9 = InvokeDynamic #0:#143 // #0:apply:(Ljava/lang/String;)Ljava/util/function/BiFunction;
#10 = InterfaceMethodref #144.#145 // java/util/Map.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
#11 = Methodref #130.#146 // com/spotify/feline/FelineRuntime.addThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)V
#12 = Methodref #130.#147 // com/spotify/feline/FelineRuntime.removeThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)Z
#13 = InterfaceMethodref #148.#149 // net/bytebuddy/description/type/TypeDescription.getName:()Ljava/lang/String;
#14 = InterfaceMethodref #144.#150 // java/util/Map.containsKey:(Ljava/lang/Object;)Z
#15 = Class #151 // java/util/HashSet
#16 = Methodref #15.#129 // java/util/HashSet."<init>":()V
#17 = InterfaceMethodref #152.#153 // java/util/Set.add:(Ljava/lang/Object;)Z
#18 = Class #154 // java/util/concurrent/ConcurrentHashMap
#19 = Methodref #18.#129 // java/util/concurrent/ConcurrentHashMap."<init>":()V
#20 = Methodref #155.#156 // net/bytebuddy/agent/ByteBuddyAgent.install:()Ljava/lang/instrument/Instrumentation;
#21 = Class #157 // java/lang/String
#22 = Class #158 // java/lang/StringBuilder
#23 = Methodref #22.#129 // java/lang/StringBuilder."<init>":()V
#24 = Class #159 // com/spotify/feline/Feline
#25 = Methodref #160.#149 // java/lang/Class.getName:()Ljava/lang/String;
#26 = Methodref #21.#161 // java/lang/String.replace:(CC)Ljava/lang/String;
#27 = Methodref #22.#162 // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#28 = String #163 // Runtime
#29 = Methodref #22.#164 // java/lang/StringBuilder.toString:()Ljava/lang/String;
#30 = Methodref #165.#166 // com/spotify/feline/BytecodeUtils.injectBootstrapClasses:(Ljava/lang/instrument/Instrumentation;[Ljava/lang/String;)V
#31 = Class #167 // java/io/IOException
#32 = Class #168 // java/lang/RuntimeException
#33 = String #169 // Failed to inject Feline runtime
#34 = Methodref #32.#170 // java/lang/RuntimeException."<init>":(Ljava/lang/String;Ljava/lang/Throwable;)V
#35 = Class #172 // net/bytebuddy/agent/builder/AgentBuilder$Default
#36 = Methodref #35.#129 // net/bytebuddy/agent/builder/AgentBuilder$Default."<init>":()V
#37 = Class #174 // com/spotify/feline/Feline$ThreadLocalCircularityLock
#38 = Methodref #37.#175 // com/spotify/feline/Feline$ThreadLocalCircularityLock."<init>":(Lcom/spotify/feline/Feline$1;)V
#39 = Methodref #35.#176 // net/bytebuddy/agent/builder/AgentBuilder$Default.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$CircularityLock;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#40 = Fieldref #177.#178 // net/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy.RETRANSFORMATION:Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;
#41 = InterfaceMethodref #171.#179 // net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy;
#42 = Fieldref #180.#181 // net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default.DECORATE:Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default;
#43 = InterfaceMethodref #182.#183 // net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#44 = Fieldref #184.#185 // net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp.INSTANCE:Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp;
#45 = InterfaceMethodref #171.#186 // net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#46 = Methodref #187.#188 // net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting.toSystemError:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting;
#47 = Methodref #187.#189 // net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting.withErrorsOnly:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;
#48 = InterfaceMethodref #171.#190 // net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#49 = String #191 // com.intellij.rt.
#50 = Methodref #192.#193 // net/bytebuddy/matcher/ElementMatchers.nameStartsWith:(Ljava/lang/String;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#51 = InterfaceMethodref #171.#194 // net/bytebuddy/agent/builder/AgentBuilder.ignore:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Ignored;
#52 = Class #195 // java/util/concurrent/CompletableFuture
#53 = Methodref #192.#196 // net/bytebuddy/matcher/ElementMatchers.is:(Ljava/lang/reflect/Type;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#54 = InterfaceMethodref #197.#198 // net/bytebuddy/agent/builder/AgentBuilder$Ignored.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
#55 = Methodref #199.#200 // com/spotify/feline/FelineTransformer.forCompletableFuture:()Lcom/spotify/feline/FelineTransformer;
#56 = InterfaceMethodref #201.#202 // net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable.transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
#57 = InterfaceMethodref #203.#204 // net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable.asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
#58 = Class #205 // java/util/concurrent/Future
#59 = Methodref #192.#206 // net/bytebuddy/matcher/ElementMatchers.isSubTypeOf:(Ljava/lang/Class;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#60 = InterfaceMethodref #171.#198 // net/bytebuddy/agent/builder/AgentBuilder.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
#61 = Methodref #199.#207 // com/spotify/feline/FelineTransformer.forFuture:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
#62 = InvokeDynamic #1:#211 // #1:matches:()Lnet/bytebuddy/matcher/ElementMatcher;
#63 = Class #212 // com/spotify/feline/AllowancesTransformer
#64 = Methodref #63.#213 // com/spotify/feline/AllowancesTransformer."<init>":(Ljava/util/Map;)V
#65 = Class #214 // java/lang/ThreadLocal
#66 = Methodref #215.#216 // com/spotify/feline/FelineThreadLocalTransformer.forThreadLocal:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
#67 = InterfaceMethodref #171.#217 // net/bytebuddy/agent/builder/AgentBuilder.installOn:(Ljava/lang/instrument/Instrumentation;)Lnet/bytebuddy/agent/builder/ResettableClassFileTransformer;
#68 = Class #218 // java/lang/Object
#69 = Class #219 // com/spotify/feline/Feline$1
#70 = Utf8 InnerClasses
#71 = Utf8 ThreadLocalCircularityLock
#72 = Utf8 allowances
#73 = Utf8 Ljava/util/Map;
#74 = Utf8 Signature
#75 = Utf8 Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
#76 = Utf8 <init>
#77 = Utf8 ()V
#78 = Utf8 Code
#79 = Utf8 LineNumberTable
#80 = Utf8 LocalVariableTable
#81 = Utf8 this
#82 = Utf8 Lcom/spotify/feline/Feline;
#83 = Utf8 addConsumerFirst
#84 = Utf8 (Ljava/util/function/Consumer;)V
#85 = Utf8 blockingCallConsumer
#86 = Utf8 Ljava/util/function/Consumer;
#87 = Utf8 LocalVariableTypeTable
#88 = Utf8 Ljava/util/function/Consumer<Ljava/lang/String;>;
#89 = Utf8 (Ljava/util/function/Consumer<Ljava/lang/String;>;)V
#90 = Utf8 addOnExitConsumerFirst
#91 = Utf8 Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
#92 = Utf8 (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)V
#93 = Utf8 addConsumerLast
#94 = Utf8 addOnExitConsumerLast
#95 = Utf8 removeConsumer
#96 = Utf8 (Ljava/util/function/Consumer;)Z
#97 = Utf8 (Ljava/util/function/Consumer<Ljava/lang/String;>;)Z
#98 = Utf8 removeOnExitConsumer
#99 = Utf8 (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)Z
#100 = Utf8 allowBlockingCallsInside
#101 = Utf8 (Ljava/lang/String;Ljava/lang/String;)V
#102 = Utf8 className
#103 = Utf8 Ljava/lang/String;
#104 = Utf8 methodName
#105 = Utf8 addThreadLocalInitialValueConsumer
#106 = Utf8 (Ljava/lang/Runnable;)V
#107 = Utf8 consumer
#108 = Utf8 Ljava/lang/Runnable;
#109 = Utf8 removeThreadLocalInitialValueConsumer
#110 = Utf8 (Ljava/lang/Runnable;)Z
#111 = Utf8 lambda$static$1
#112 = Utf8 (Lnet/bytebuddy/description/type/TypeDescription;)Z
#113 = Utf8 it
#114 = Utf8 Lnet/bytebuddy/description/type/TypeDescription;
#115 = Utf8 lambda$allowBlockingCallsInside$0
#116 = Utf8 (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#117 = Utf8 key
#118 = Utf8 Ljava/util/Set;
#119 = Utf8 StackMapTable
#120 = Utf8 <clinit>
#121 = Utf8 e
#122 = Utf8 Ljava/io/IOException;
#123 = Utf8 instrumentation
#124 = Utf8 Ljava/lang/instrument/Instrumentation;
#125 = Class #220 // java/lang/instrument/Instrumentation
#126 = Class #167 // java/io/IOException
#127 = Utf8 SourceFile
#128 = Utf8 Feline.java
#129 = NameAndType #76:#77 // "<init>":()V
#130 = Class #221 // com/spotify/feline/FelineRuntime
#131 = NameAndType #83:#84 // addConsumerFirst:(Ljava/util/function/Consumer;)V
#132 = NameAndType #90:#84 // addOnExitConsumerFirst:(Ljava/util/function/Consumer;)V
#133 = NameAndType #93:#84 // addConsumerLast:(Ljava/util/function/Consumer;)V
#134 = NameAndType #94:#84 // addOnExitConsumerLast:(Ljava/util/function/Consumer;)V
#135 = NameAndType #95:#96 // removeConsumer:(Ljava/util/function/Consumer;)Z
#136 = NameAndType #98:#96 // removeOnExitConsumer:(Ljava/util/function/Consumer;)Z
#137 = NameAndType #72:#73 // allowances:Ljava/util/Map;
#138 = Utf8 BootstrapMethods
#139 = MethodHandle 6:#222 // REF_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;
#140 = MethodType #223 // (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
#141 = MethodHandle 6:#224 // REF_invokeStatic com/spotify/feline/Feline.lambda$allowBlockingCallsInside$0:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#142 = MethodType #225 // (Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#143 = NameAndType #226:#227 // apply:(Ljava/lang/String;)Ljava/util/function/BiFunction;
#144 = Class #228 // java/util/Map
#145 = NameAndType #229:#230 // compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
#146 = NameAndType #105:#106 // addThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)V
#147 = NameAndType #109:#110 // removeThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)Z
#148 = Class #231 // net/bytebuddy/description/type/TypeDescription
#149 = NameAndType #232:#233 // getName:()Ljava/lang/String;
#150 = NameAndType #234:#235 // containsKey:(Ljava/lang/Object;)Z
#151 = Utf8 java/util/HashSet
#152 = Class #236 // java/util/Set
#153 = NameAndType #237:#235 // add:(Ljava/lang/Object;)Z
#154 = Utf8 java/util/concurrent/ConcurrentHashMap
#155 = Class #238 // net/bytebuddy/agent/ByteBuddyAgent
#156 = NameAndType #239:#240 // install:()Ljava/lang/instrument/Instrumentation;
#157 = Utf8 java/lang/String
#158 = Utf8 java/lang/StringBuilder
#159 = Utf8 com/spotify/feline/Feline
#160 = Class #241 // java/lang/Class
#161 = NameAndType #242:#243 // replace:(CC)Ljava/lang/String;
#162 = NameAndType #244:#245 // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
#163 = Utf8 Runtime
#164 = NameAndType #246:#233 // toString:()Ljava/lang/String;
#165 = Class #247 // com/spotify/feline/BytecodeUtils
#166 = NameAndType #248:#249 // injectBootstrapClasses:(Ljava/lang/instrument/Instrumentation;[Ljava/lang/String;)V
#167 = Utf8 java/io/IOException
#168 = Utf8 java/lang/RuntimeException
#169 = Utf8 Failed to inject Feline runtime
#170 = NameAndType #76:#250 // "<init>":(Ljava/lang/String;Ljava/lang/Throwable;)V
#171 = Class #251 // net/bytebuddy/agent/builder/AgentBuilder
#172 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Default
#173 = Utf8 Default
#174 = Utf8 com/spotify/feline/Feline$ThreadLocalCircularityLock
#175 = NameAndType #76:#252 // "<init>":(Lcom/spotify/feline/Feline$1;)V
#176 = NameAndType #253:#256 // with:(Lnet/bytebuddy/agent/builder/AgentBuilder$CircularityLock;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#177 = Class #257 // net/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy
#178 = NameAndType #259:#260 // RETRANSFORMATION:Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;
#179 = NameAndType #253:#264 // with:(Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy;
#180 = Class #266 // net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default
#181 = NameAndType #268:#269 // DECORATE:Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default;
#182 = Class #270 // net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy
#183 = NameAndType #253:#271 // with:(Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#184 = Class #273 // net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp
#185 = NameAndType #276:#277 // INSTANCE:Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp;
#186 = NameAndType #253:#278 // with:(Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#187 = Class #280 // net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting
#188 = NameAndType #283:#284 // toSystemError:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting;
#189 = NameAndType #285:#286 // withErrorsOnly:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;
#190 = NameAndType #253:#287 // with:(Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#191 = Utf8 com.intellij.rt.
#192 = Class #288 // net/bytebuddy/matcher/ElementMatchers
#193 = NameAndType #289:#292 // nameStartsWith:(Ljava/lang/String;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#194 = NameAndType #293:#295 // ignore:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Ignored;
#195 = Utf8 java/util/concurrent/CompletableFuture
#196 = NameAndType #296:#297 // is:(Ljava/lang/reflect/Type;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#197 = Class #298 // net/bytebuddy/agent/builder/AgentBuilder$Ignored
#198 = NameAndType #299:#303 // type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
#199 = Class #304 // com/spotify/feline/FelineTransformer
#200 = NameAndType #305:#306 // forCompletableFuture:()Lcom/spotify/feline/FelineTransformer;
#201 = Class #307 // net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable
#202 = NameAndType #308:#312 // transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
#203 = Class #313 // net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable
#204 = NameAndType #314:#315 // asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
#205 = Utf8 java/util/concurrent/Future
#206 = NameAndType #316:#317 // isSubTypeOf:(Ljava/lang/Class;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#207 = NameAndType #318:#319 // forFuture:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
#208 = MethodType #235 // (Ljava/lang/Object;)Z
#209 = MethodHandle 6:#320 // REF_invokeStatic com/spotify/feline/Feline.lambda$static$1:(Lnet/bytebuddy/description/type/TypeDescription;)Z
#210 = MethodType #112 // (Lnet/bytebuddy/description/type/TypeDescription;)Z
#211 = NameAndType #321:#322 // matches:()Lnet/bytebuddy/matcher/ElementMatcher;
#212 = Utf8 com/spotify/feline/AllowancesTransformer
#213 = NameAndType #76:#323 // "<init>":(Ljava/util/Map;)V
#214 = Utf8 java/lang/ThreadLocal
#215 = Class #324 // com/spotify/feline/FelineThreadLocalTransformer
#216 = NameAndType #325:#319 // forThreadLocal:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
#217 = NameAndType #326:#327 // installOn:(Ljava/lang/instrument/Instrumentation;)Lnet/bytebuddy/agent/builder/ResettableClassFileTransformer;
#218 = Utf8 java/lang/Object
#219 = Utf8 com/spotify/feline/Feline$1
#220 = Utf8 java/lang/instrument/Instrumentation
#221 = Utf8 com/spotify/feline/FelineRuntime
#222 = Methodref #328.#329 // 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;
#223 = Utf8 (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
#224 = Methodref #24.#330 // com/spotify/feline/Feline.lambda$allowBlockingCallsInside$0:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#225 = Utf8 (Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#226 = Utf8 apply
#227 = Utf8 (Ljava/lang/String;)Ljava/util/function/BiFunction;
#228 = Utf8 java/util/Map
#229 = Utf8 compute
#230 = Utf8 (Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
#231 = Utf8 net/bytebuddy/description/type/TypeDescription
#232 = Utf8 getName
#233 = Utf8 ()Ljava/lang/String;
#234 = Utf8 containsKey
#235 = Utf8 (Ljava/lang/Object;)Z
#236 = Utf8 java/util/Set
#237 = Utf8 add
#238 = Utf8 net/bytebuddy/agent/ByteBuddyAgent
#239 = Utf8 install
#240 = Utf8 ()Ljava/lang/instrument/Instrumentation;
#241 = Utf8 java/lang/Class
#242 = Utf8 replace
#243 = Utf8 (CC)Ljava/lang/String;
#244 = Utf8 append
#245 = Utf8 (Ljava/lang/String;)Ljava/lang/StringBuilder;
#246 = Utf8 toString
#247 = Utf8 com/spotify/feline/BytecodeUtils
#248 = Utf8 injectBootstrapClasses
#249 = Utf8 (Ljava/lang/instrument/Instrumentation;[Ljava/lang/String;)V
#250 = Utf8 (Ljava/lang/String;Ljava/lang/Throwable;)V
#251 = Utf8 net/bytebuddy/agent/builder/AgentBuilder
#252 = Utf8 (Lcom/spotify/feline/Feline$1;)V
#253 = Utf8 with
#254 = Class #331 // net/bytebuddy/agent/builder/AgentBuilder$CircularityLock
#255 = Utf8 CircularityLock
#256 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$CircularityLock;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#257 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy
#258 = Utf8 RedefinitionStrategy
#259 = Utf8 RETRANSFORMATION
#260 = Utf8 Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;
#261 = Class #332 // net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable
#262 = Utf8 RedefinitionListenable
#263 = Utf8 WithoutBatchStrategy
#264 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy;
#265 = Class #333 // net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy
#266 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default
#267 = Utf8 TypeStrategy
#268 = Utf8 DECORATE
#269 = Utf8 Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default;
#270 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy
#271 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#272 = Class #334 // net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy
#273 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp
#274 = Utf8 InitializationStrategy
#275 = Utf8 NoOp
#276 = Utf8 INSTANCE
#277 = Utf8 Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp;
#278 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#279 = Class #335 // net/bytebuddy/agent/builder/AgentBuilder$Listener
#280 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting
#281 = Utf8 Listener
#282 = Utf8 StreamWriting
#283 = Utf8 toSystemError
#284 = Utf8 ()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting;
#285 = Utf8 withErrorsOnly
#286 = Utf8 ()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;
#287 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;)Lnet/bytebuddy/agent/builder/AgentBuilder;
#288 = Utf8 net/bytebuddy/matcher/ElementMatchers
#289 = Utf8 nameStartsWith
#290 = Class #337 // net/bytebuddy/matcher/ElementMatcher$Junction
#291 = Utf8 Junction
#292 = Utf8 (Ljava/lang/String;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#293 = Utf8 ignore
#294 = Utf8 Ignored
#295 = Utf8 (Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Ignored;
#296 = Utf8 is
#297 = Utf8 (Ljava/lang/reflect/Type;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#298 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Ignored
#299 = Utf8 type
#300 = Class #338 // net/bytebuddy/agent/builder/AgentBuilder$Identified
#301 = Utf8 Identified
#302 = Utf8 Narrowable
#303 = Utf8 (Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
#304 = Utf8 com/spotify/feline/FelineTransformer
#305 = Utf8 forCompletableFuture
#306 = Utf8 ()Lcom/spotify/feline/FelineTransformer;
#307 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable
#308 = Utf8 transform
#309 = Class #339 // net/bytebuddy/agent/builder/AgentBuilder$Transformer
#310 = Utf8 Transformer
#311 = Utf8 Extendable
#312 = Utf8 (Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
#313 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable
#314 = Utf8 asTerminalTransformation
#315 = Utf8 ()Lnet/bytebuddy/agent/builder/AgentBuilder;
#316 = Utf8 isSubTypeOf
#317 = Utf8 (Ljava/lang/Class;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
#318 = Utf8 forFuture
#319 = Utf8 ()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
#320 = Methodref #24.#340 // com/spotify/feline/Feline.lambda$static$1:(Lnet/bytebuddy/description/type/TypeDescription;)Z
#321 = Utf8 matches
#322 = Utf8 ()Lnet/bytebuddy/matcher/ElementMatcher;
#323 = Utf8 (Ljava/util/Map;)V
#324 = Utf8 com/spotify/feline/FelineThreadLocalTransformer
#325 = Utf8 forThreadLocal
#326 = Utf8 installOn
#327 = Utf8 (Ljava/lang/instrument/Instrumentation;)Lnet/bytebuddy/agent/builder/ResettableClassFileTransformer;
#328 = Class #341 // java/lang/invoke/LambdaMetafactory
#329 = NameAndType #342:#345 // 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;
#330 = NameAndType #115:#116 // lambda$allowBlockingCallsInside$0:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#331 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$CircularityLock
#332 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable
#333 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy
#334 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy
#335 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Listener
#336 = Class #346 // net/bytebuddy/matcher/ElementMatcher
#337 = Utf8 net/bytebuddy/matcher/ElementMatcher$Junction
#338 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Identified
#339 = Utf8 net/bytebuddy/agent/builder/AgentBuilder$Transformer
#340 = NameAndType #111:#112 // lambda$static$1:(Lnet/bytebuddy/description/type/TypeDescription;)Z
#341 = Utf8 java/lang/invoke/LambdaMetafactory
#342 = Utf8 metafactory
#343 = Class #348 // java/lang/invoke/MethodHandles$Lookup
#344 = Utf8 Lookup
#345 = Utf8 (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;
#346 = Utf8 net/bytebuddy/matcher/ElementMatcher
#347 = Class #349 // java/lang/invoke/MethodHandles
#348 = Utf8 java/lang/invoke/MethodHandles$Lookup
#349 = Utf8 java/lang/invoke/MethodHandles
{
private static final java.util.Map<java.lang.String, java.util.Set<java.lang.String>> allowances;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: #75 // Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
public com.spotify.feline.Feline();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 33: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/spotify/feline/Feline;
public static void addConsumerFirst(java.util.function.Consumer<java.lang.String>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #2 // Method com/spotify/feline/FelineRuntime.addConsumerFirst:(Ljava/util/function/Consumer;)V
4: return
LineNumberTable:
line 53: 0
line 54: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/lang/String;>;
Signature: #89 // (Ljava/util/function/Consumer<Ljava/lang/String;>;)V
public static void addOnExitConsumerFirst(java.util.function.Consumer<java.util.Map<java.lang.String, java.lang.Object>>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #3 // Method com/spotify/feline/FelineRuntime.addOnExitConsumerFirst:(Ljava/util/function/Consumer;)V
4: return
LineNumberTable:
line 79: 0
line 80: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
Signature: #92 // (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)V
public static void addConsumerLast(java.util.function.Consumer<java.lang.String>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #4 // Method com/spotify/feline/FelineRuntime.addConsumerLast:(Ljava/util/function/Consumer;)V
4: return
LineNumberTable:
line 97: 0
line 98: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/lang/String;>;
Signature: #89 // (Ljava/util/function/Consumer<Ljava/lang/String;>;)V
public static void addOnExitConsumerLast(java.util.function.Consumer<java.util.Map<java.lang.String, java.lang.Object>>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #5 // Method com/spotify/feline/FelineRuntime.addOnExitConsumerLast:(Ljava/util/function/Consumer;)V
4: return
LineNumberTable:
line 123: 0
line 124: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
Signature: #92 // (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)V
public static boolean removeConsumer(java.util.function.Consumer<java.lang.String>);
descriptor: (Ljava/util/function/Consumer;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #6 // Method com/spotify/feline/FelineRuntime.removeConsumer:(Ljava/util/function/Consumer;)Z
4: ireturn
LineNumberTable:
line 133: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/lang/String;>;
Signature: #97 // (Ljava/util/function/Consumer<Ljava/lang/String;>;)Z
public static boolean removeOnExitConsumer(java.util.function.Consumer<java.util.Map<java.lang.String, java.lang.Object>>);
descriptor: (Ljava/util/function/Consumer;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #7 // Method com/spotify/feline/FelineRuntime.removeOnExitConsumer:(Ljava/util/function/Consumer;)Z
4: ireturn
LineNumberTable:
line 144: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer;
LocalVariableTypeTable:
Start Length Slot Name Signature
0 5 0 blockingCallConsumer Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;
Signature: #99 // (Ljava/util/function/Consumer<Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;)Z
public static void allowBlockingCallsInside(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
0: getstatic #8 // Field allowances:Ljava/util/Map;
3: aload_0
4: aload_1
5: invokedynamic #9, 0 // InvokeDynamic #0:apply:(Ljava/lang/String;)Ljava/util/function/BiFunction;
10: invokeinterface #10, 3 // InterfaceMethod java/util/Map.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
15: pop
16: return
LineNumberTable:
line 155: 0
line 164: 16
LocalVariableTable:
Start Length Slot Name Signature
0 17 0 className Ljava/lang/String;
0 17 1 methodName Ljava/lang/String;
public static void addThreadLocalInitialValueConsumer(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #11 // Method com/spotify/feline/FelineRuntime.addThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)V
4: return
LineNumberTable:
line 177: 0
line 178: 4
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 consumer Ljava/lang/Runnable;
public static boolean removeThreadLocalInitialValueConsumer(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokestatic #12 // Method com/spotify/feline/FelineRuntime.removeThreadLocalInitialValueConsumer:(Ljava/lang/Runnable;)Z
4: ireturn
LineNumberTable:
line 181: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 consumer Ljava/lang/Runnable;
private static boolean lambda$static$1(net.bytebuddy.description.type.TypeDescription);
descriptor: (Lnet/bytebuddy/description/type/TypeDescription;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
0: getstatic #8 // Field allowances:Ljava/util/Map;
3: aload_0
4: invokeinterface #13, 1 // InterfaceMethod net/bytebuddy/description/type/TypeDescription.getName:()Ljava/lang/String;
9: invokeinterface #14, 2 // InterfaceMethod java/util/Map.containsKey:(Ljava/lang/Object;)Z
14: ireturn
LineNumberTable:
line 217: 0
LocalVariableTable:
Start Length Slot Name Signature
0 15 0 it Lnet/bytebuddy/description/type/TypeDescription;
private static java.util.Set lambda$allowBlockingCallsInside$0(java.lang.String, java.lang.String, java.util.Set);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
0: aload_2
1: ifnonnull 12
4: new #15 // class java/util/HashSet
7: dup
8: invokespecial #16 // Method java/util/HashSet."<init>":()V
11: astore_2
12: aload_2
13: aload_0
14: invokeinterface #17, 2 // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
19: pop
20: aload_2
21: areturn
LineNumberTable:
line 158: 0
line 159: 4
line 161: 12
line 162: 20
LocalVariableTable:
Start Length Slot Name Signature
0 22 0 methodName Ljava/lang/String;
0 22 1 key Ljava/lang/String;
0 22 2 allowances Ljava/util/Set;
StackMapTable: number_of_entries = 1
frame_type = 12 /* same */
static {};
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=2, args_size=0
0: new #18 // class java/util/concurrent/ConcurrentHashMap
3: dup
4: invokespecial #19 // Method java/util/concurrent/ConcurrentHashMap."<init>":()V
7: putstatic #8 // Field allowances:Ljava/util/Map;
10: invokestatic #20 // Method net/bytebuddy/agent/ByteBuddyAgent.install:()Ljava/lang/instrument/Instrumentation;
13: astore_0
14: aload_0
15: iconst_1
16: anewarray #21 // class java/lang/String
19: dup
20: iconst_0
21: new #22 // class java/lang/StringBuilder
24: dup
25: invokespecial #23 // Method java/lang/StringBuilder."<init>":()V
28: ldc #24 // class com/spotify/feline/Feline
30: invokevirtual #25 // Method java/lang/Class.getName:()Ljava/lang/String;
33: bipush 46
35: bipush 47
37: invokevirtual #26 // Method java/lang/String.replace:(CC)Ljava/lang/String;
40: invokevirtual #27 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: ldc #28 // String Runtime
45: invokevirtual #27 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
48: invokevirtual #29 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
51: aastore
52: invokestatic #30 // Method com/spotify/feline/BytecodeUtils.injectBootstrapClasses:(Ljava/lang/instrument/Instrumentation;[Ljava/lang/String;)V
55: goto 70
58: astore_1
59: new #32 // class java/lang/RuntimeException
62: dup
63: ldc #33 // String Failed to inject Feline runtime
65: aload_1
66: invokespecial #34 // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;Ljava/lang/Throwable;)V
69: athrow
70: new #35 // class net/bytebuddy/agent/builder/AgentBuilder$Default
73: dup
74: invokespecial #36 // Method net/bytebuddy/agent/builder/AgentBuilder$Default."<init>":()V
77: new #37 // class com/spotify/feline/Feline$ThreadLocalCircularityLock
80: dup
81: aconst_null
82: invokespecial #38 // Method com/spotify/feline/Feline$ThreadLocalCircularityLock."<init>":(Lcom/spotify/feline/Feline$1;)V
85: invokevirtual #39 // Method net/bytebuddy/agent/builder/AgentBuilder$Default.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$CircularityLock;)Lnet/bytebuddy/agent/builder/AgentBuilder;
88: getstatic #40 // Field net/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy.RETRANSFORMATION:Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;
91: invokeinterface #41, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy;
96: getstatic #42 // Field net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default.DECORATE:Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default;
99: invokeinterface #43, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$TypeStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
104: getstatic #44 // Field net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp.INSTANCE:Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp;
107: invokeinterface #45, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy;)Lnet/bytebuddy/agent/builder/AgentBuilder;
112: invokestatic #46 // Method net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting.toSystemError:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting;
115: invokevirtual #47 // Method net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting.withErrorsOnly:()Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;
118: invokeinterface #48, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.with:(Lnet/bytebuddy/agent/builder/AgentBuilder$Listener;)Lnet/bytebuddy/agent/builder/AgentBuilder;
123: ldc #49 // String com.intellij.rt.
125: invokestatic #50 // Method net/bytebuddy/matcher/ElementMatchers.nameStartsWith:(Ljava/lang/String;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
128: invokeinterface #51, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.ignore:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Ignored;
133: ldc #52 // class java/util/concurrent/CompletableFuture
135: invokestatic #53 // Method net/bytebuddy/matcher/ElementMatchers.is:(Ljava/lang/reflect/Type;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
138: invokeinterface #54, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Ignored.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
143: invokestatic #55 // Method com/spotify/feline/FelineTransformer.forCompletableFuture:()Lcom/spotify/feline/FelineTransformer;
146: invokeinterface #56, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable.transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
151: invokeinterface #57, 1 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable.asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
156: ldc #58 // class java/util/concurrent/Future
158: invokestatic #59 // Method net/bytebuddy/matcher/ElementMatchers.isSubTypeOf:(Ljava/lang/Class;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
161: invokeinterface #60, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
166: invokestatic #61 // Method com/spotify/feline/FelineTransformer.forFuture:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
169: invokeinterface #56, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable.transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
174: invokeinterface #57, 1 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable.asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
179: invokedynamic #62, 0 // InvokeDynamic #1:matches:()Lnet/bytebuddy/matcher/ElementMatcher;
184: invokeinterface #60, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
189: new #63 // class com/spotify/feline/AllowancesTransformer
192: dup
193: getstatic #8 // Field allowances:Ljava/util/Map;
196: invokespecial #64 // Method com/spotify/feline/AllowancesTransformer."<init>":(Ljava/util/Map;)V
199: invokeinterface #56, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable.transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
204: invokeinterface #57, 1 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable.asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
209: ldc #65 // class java/lang/ThreadLocal
211: invokestatic #59 // Method net/bytebuddy/matcher/ElementMatchers.isSubTypeOf:(Ljava/lang/Class;)Lnet/bytebuddy/matcher/ElementMatcher$Junction;
214: invokeinterface #60, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.type:(Lnet/bytebuddy/matcher/ElementMatcher;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable;
219: invokestatic #66 // Method com/spotify/feline/FelineThreadLocalTransformer.forThreadLocal:()Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;
222: invokeinterface #56, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable.transform:(Lnet/bytebuddy/agent/builder/AgentBuilder$Transformer;)Lnet/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable;
227: invokeinterface #57, 1 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable.asTerminalTransformation:()Lnet/bytebuddy/agent/builder/AgentBuilder;
232: aload_0
233: invokeinterface #67, 2 // InterfaceMethod net/bytebuddy/agent/builder/AgentBuilder.installOn:(Ljava/lang/instrument/Instrumentation;)Lnet/bytebuddy/agent/builder/ResettableClassFileTransformer;
238: pop
239: return
Exception table:
from to target type
14 55 58 Class java/io/IOException
LineNumberTable:
line 35: 0
line 185: 10
line 188: 14
line 189: 30
line 188: 52
line 192: 55
line 190: 58
line 191: 59
line 194: 70
line 195: 85
line 196: 91
line 197: 99
line 198: 107
line 200: 112
line 203: 125
line 206: 135
line 207: 143
line 208: 151
line 212: 158
line 213: 166
line 214: 174
line 217: 184
line 218: 199
line 219: 204
line 222: 211
line 223: 219
line 224: 227
line 225: 233
line 226: 239
LocalVariableTable:
Start Length Slot Name Signature
59 11 1 e Ljava/io/IOException;
14 225 0 instrumentation Ljava/lang/instrument/Instrumentation;
StackMapTable: number_of_entries = 2
frame_type = 255 /* full_frame */
offset_delta = 58
locals = [ class java/lang/instrument/Instrumentation ]
stack = [ class java/io/IOException ]
frame_type = 11 /* same */
}
SourceFile: "Feline.java"
InnerClasses:
static #69; // class com/spotify/feline/Feline$1
private static #71= #37 of #24; // ThreadLocalCircularityLock=class com/spotify/feline/Feline$ThreadLocalCircularityLock of class com/spotify/feline/Feline
public static #173= #35 of #171; // Default=class net/bytebuddy/agent/builder/AgentBuilder$Default of class net/bytebuddy/agent/builder/AgentBuilder
public static #255= #254 of #171; // CircularityLock=class net/bytebuddy/agent/builder/AgentBuilder$CircularityLock of class net/bytebuddy/agent/builder/AgentBuilder
public static abstract #258= #177 of #171; // RedefinitionStrategy=class net/bytebuddy/agent/builder/AgentBuilder$RedefinitionStrategy of class net/bytebuddy/agent/builder/AgentBuilder
public static #262= #261 of #171; // RedefinitionListenable=class net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable of class net/bytebuddy/agent/builder/AgentBuilder
public static #263= #182 of #261; // WithoutBatchStrategy=class net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable$WithoutBatchStrategy of class net/bytebuddy/agent/builder/AgentBuilder$RedefinitionListenable
public static #267= #265 of #171; // TypeStrategy=class net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy of class net/bytebuddy/agent/builder/AgentBuilder
public static abstract #173= #180 of #265; // Default=class net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy$Default of class net/bytebuddy/agent/builder/AgentBuilder$TypeStrategy
public static #274= #272 of #171; // InitializationStrategy=class net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy of class net/bytebuddy/agent/builder/AgentBuilder
public static final #275= #184 of #272; // NoOp=class net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy$NoOp of class net/bytebuddy/agent/builder/AgentBuilder$InitializationStrategy
public static #281= #279 of #171; // Listener=class net/bytebuddy/agent/builder/AgentBuilder$Listener of class net/bytebuddy/agent/builder/AgentBuilder
public static #282= #187 of #279; // StreamWriting=class net/bytebuddy/agent/builder/AgentBuilder$Listener$StreamWriting of class net/bytebuddy/agent/builder/AgentBuilder$Listener
public static #291= #290 of #336; // Junction=class net/bytebuddy/matcher/ElementMatcher$Junction of class net/bytebuddy/matcher/ElementMatcher
public static #294= #197 of #171; // Ignored=class net/bytebuddy/agent/builder/AgentBuilder$Ignored of class net/bytebuddy/agent/builder/AgentBuilder
public static #301= #300 of #171; // Identified=class net/bytebuddy/agent/builder/AgentBuilder$Identified of class net/bytebuddy/agent/builder/AgentBuilder
public static #302= #201 of #300; // Narrowable=class net/bytebuddy/agent/builder/AgentBuilder$Identified$Narrowable of class net/bytebuddy/agent/builder/AgentBuilder$Identified
public static #310= #309 of #171; // Transformer=class net/bytebuddy/agent/builder/AgentBuilder$Transformer of class net/bytebuddy/agent/builder/AgentBuilder
public static #311= #203 of #300; // Extendable=class net/bytebuddy/agent/builder/AgentBuilder$Identified$Extendable of class net/bytebuddy/agent/builder/AgentBuilder$Identified
public static final #344= #343 of #347; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
BootstrapMethods:
0: #139 REF_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:
#140 (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
#141 REF_invokeStatic com/spotify/feline/Feline.lambda$allowBlockingCallsInside$0:(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
#142 (Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
1: #139 REF_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:
#208 (Ljava/lang/Object;)Z
#209 REF_invokeStatic com/spotify/feline/Feline.lambda$static$1:(Lnet/bytebuddy/description/type/TypeDescription;)Z
#210 (Lnet/bytebuddy/description/type/TypeDescription;)Z
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment