Created
August 4, 2022 12:33
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ 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