Classfile jar:file:///var/lib/toadex/fleet-worker/run-20261114-215136-worker-00002/slot-data/job-5/workspaces/bugbounty-ch/baloise-germany/work/source-derived/guidewire-policycenter-repo/admin/lib/pl-10.13.6.jar!/com/guidewire/pl/rest/SwaggerRestServlet.class Last modified Feb 1, 1980; size 10207 bytes SHA-256 checksum 1647edd232f7b3470f74b33d28f009b54241c11cf47e2adeffbaa83df4484a3c Compiled from "SwaggerRestServlet.java" public class com.guidewire.pl.rest.SwaggerRestServlet extends javax.servlet.http.HttpServlet implements gw.lang.reflect.ITypeLoaderListener minor version: 0 major version: 52 flags: (0x0021) ACC_PUBLIC, ACC_SUPER this_class: #85 // com/guidewire/pl/rest/SwaggerRestServlet super_class: #86 // javax/servlet/http/HttpServlet interfaces: 1, fields: 6, methods: 19, attributes: 3 Constant pool: #1 = Methodref #86.#171 // javax/servlet/http/HttpServlet."":()V #2 = Class #172 // java/util/concurrent/atomic/AtomicBoolean #3 = Methodref #2.#173 // java/util/concurrent/atomic/AtomicBoolean."":(Z)V #4 = Fieldref #85.#174 // com/guidewire/pl/rest/SwaggerRestServlet._needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; #5 = Methodref #86.#175 // javax/servlet/http/HttpServlet.init:()V #6 = Methodref #176.#177 // gw/lang/reflect/TypeSystem.addTypeLoaderListenerAsWeakRef:(Lgw/lang/reflect/ITypeLoaderListener;)V #7 = Methodref #178.#179 // com/guidewire/pl/system/dependency/PLDependencies.getServerMode:()Lcom/guidewire/pl/system/server/ServerMode; #8 = InterfaceMethodref #180.#181 // com/guidewire/pl/system/server/ServerMode.isDev:()Z #9 = Fieldref #85.#182 // com/guidewire/pl/rest/SwaggerRestServlet._isDev:Z #10 = Class #183 // com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher #11 = Methodref #10.#171 // com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher."":()V #12 = Fieldref #85.#184 // com/guidewire/pl/rest/SwaggerRestServlet._dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; #13 = Methodref #85.#185 // com/guidewire/pl/rest/SwaggerRestServlet.loadConfigRefreshPlugin:()Lgw/api/rest/IRestConfigRefreshPlugin; #14 = Fieldref #85.#186 // com/guidewire/pl/rest/SwaggerRestServlet._configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; #15 = Methodref #187.#188 // com/guidewire/pl/system/server/InitTab.isRunningTestsInHarness:()Z #16 = InterfaceMethodref #56.#189 // gw/api/rest/IRestConfigRefreshPlugin.getFileExtensionsToWatch:()Ljava/util/Collection; #17 = Fieldref #85.#190 // com/guidewire/pl/rest/SwaggerRestServlet._extensions:Ljava/util/Collection; #18 = Fieldref #191.#192 // com/guidewire/pl/config/PLConfigResourceKeys.INTEGRATION_DIR_KEY:Lcom/guidewire/modules/key/VDirKey; #19 = Methodref #193.#194 // com/guidewire/modules/key/VDirKey.getDir:()Lcom/guidewire/modules/file/VirtualDirectory; #20 = Methodref #195.#196 // com/guidewire/modules/file/VirtualDirectory.resolve:()[Ljava/io/File; #21 = Methodref #197.#198 // java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream; #22 = InvokeDynamic #0:#204 // #0:test:()Ljava/util/function/Predicate; #23 = InterfaceMethodref #205.#206 // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; #24 = InvokeDynamic #1:#210 // #1:apply:()Ljava/util/function/Function; #25 = InterfaceMethodref #205.#211 // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; #26 = Methodref #212.#213 // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector; #27 = InterfaceMethodref #205.#214 // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object; #28 = Class #215 // java/util/List #29 = InvokeDynamic #2:#218 // #2:test:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Predicate; #30 = Methodref #219.#220 // com/guidewire/pl/integration/watcher/ChangeListener.createDefault:(Ljava/util/List;Ljava/util/function/Predicate;)Lcom/guidewire/pl/integration/watcher/ChangeListener; #31 = Fieldref #85.#221 // com/guidewire/pl/rest/SwaggerRestServlet._changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; #32 = InvokeDynamic #3:#224 // #3:getTree:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier; #33 = Methodref #178.#225 // com/guidewire/pl/system/dependency/PLDependencies.setRestPathTreeSupplier:(Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier;)V #34 = Methodref #226.#227 // com/guidewire/pl/json/util/IntegrationConfigSourcePluginCache.getPlugins:()Ljava/util/List; #35 = InvokeDynamic #4:#231 // #4:accept:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Consumer; #36 = InterfaceMethodref #28.#232 // java/util/List.forEach:(Ljava/util/function/Consumer;)V #37 = Methodref #85.#233 // com/guidewire/pl/rest/SwaggerRestServlet.maybePreload:()V #38 = Fieldref #234.#235 // com/guidewire/pl/system/logging/PLLoggerCategory.REST_CONFIG:Lorg/slf4j/Logger; #39 = String #236 // REST Servlet initialized #40 = InterfaceMethodref #237.#238 // org/slf4j/Logger.info:(Ljava/lang/String;)V #41 = Methodref #239.#240 // com/guidewire/pl/system/dependency/ServerDependencies.getSystemConfiguration:()Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; #42 = Fieldref #241.#242 // java/lang/Boolean.TRUE:Ljava/lang/Boolean; #43 = Fieldref #243.#244 // gw/api/system/PLConfigParameters.PreloadRestServletConfig:Lgw/api/system/BooleanParameterKey; #44 = InterfaceMethodref #245.#246 // com/guidewire/pl/system/server/config/manager/SystemConfiguration.getParameterValue:(Lgw/api/system/ParameterKey;)Ljava/lang/Object; #45 = Methodref #241.#247 // java/lang/Boolean.equals:(Ljava/lang/Object;)Z #46 = Methodref #187.#248 // com/guidewire/pl/system/server/InitTab.getInstance:()Lcom/guidewire/pl/system/server/InitTab; #47 = Methodref #187.#249 // com/guidewire/pl/system/server/InitTab.getRunLevel:()Lgw/api/system/server/Runlevel; #48 = Fieldref #250.#251 // gw/api/system/server/Runlevel.SHUTDOWN:Lgw/api/system/server/Runlevel; #49 = Methodref #250.#252 // gw/api/system/server/Runlevel.isLater:(Lgw/api/system/server/Runlevel;)Z #50 = String #253 // Preloading the REST servlet and related configuration files #51 = Methodref #85.#254 // com/guidewire/pl/rest/SwaggerRestServlet.preload:()V #52 = String #255 // Preload disabled for the REST servlet, loading will happen lazily on the first REST request #53 = Methodref #10.#256 // com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher.getPathTree:()Lcom/guidewire/pl/rest/dispatch/PathTree; #54 = InterfaceMethodref #56.#257 // gw/api/rest/IRestConfigRefreshPlugin.preloadConfig:()V #55 = Methodref #178.#258 // com/guidewire/pl/system/dependency/PLDependencies.getPluginConfig:()Lcom/guidewire/pl/system/integration/plugins/PluginConfig; #56 = Class #259 // gw/api/rest/IRestConfigRefreshPlugin #57 = InterfaceMethodref #260.#261 // com/guidewire/pl/system/integration/plugins/PluginConfig.getPluginDef:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/PluginDef; #58 = InterfaceMethodref #260.#262 // com/guidewire/pl/system/integration/plugins/PluginConfig.getPlugin:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/internal/InternalPlugin; #59 = Class #263 // gw/api/rest/DefaultRestConfigRefreshPlugin #60 = Methodref #59.#171 // gw/api/rest/DefaultRestConfigRefreshPlugin."":()V #61 = Methodref #85.#264 // com/guidewire/pl/rest/SwaggerRestServlet.maybeUpdate:()V #62 = Methodref #10.#265 // com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher.handleRequest:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V #63 = Methodref #85.#266 // com/guidewire/pl/rest/SwaggerRestServlet.needsUpdate:()Z #64 = Methodref #85.#267 // com/guidewire/pl/rest/SwaggerRestServlet.update:()V #65 = InterfaceMethodref #268.#269 // java/nio/file/Path.toString:()Ljava/lang/String; #66 = InterfaceMethodref #270.#271 // java/util/Collection.iterator:()Ljava/util/Iterator; #67 = InterfaceMethodref #272.#273 // java/util/Iterator.hasNext:()Z #68 = InterfaceMethodref #272.#274 // java/util/Iterator.next:()Ljava/lang/Object; #69 = Class #275 // java/lang/String #70 = Methodref #69.#276 // java/lang/String.endsWith:(Ljava/lang/String;)Z #71 = Methodref #2.#277 // java/util/concurrent/atomic/AtomicBoolean.get:()Z #72 = String #278 // Changes detected to REST config files and/or classes, reloading the REST dispatcher #73 = InterfaceMethodref #56.#279 // gw/api/rest/IRestConfigRefreshPlugin.resetCaches:()V #74 = Methodref #85.#280 // com/guidewire/pl/rest/SwaggerRestServlet.updateFinished:()V #75 = Methodref #2.#281 // java/util/concurrent/atomic/AtomicBoolean.set:(Z)V #76 = Methodref #85.#282 // com/guidewire/pl/rest/SwaggerRestServlet.scheduleUpdate:()V #77 = Methodref #85.#283 // com/guidewire/pl/rest/SwaggerRestServlet.checkIfNeedsUpdate:()V #78 = Methodref #219.#284 // com/guidewire/pl/integration/watcher/ChangeListener.hasChanges:()Z #79 = Methodref #219.#285 // com/guidewire/pl/integration/watcher/ChangeListener.close:()V #80 = Class #286 // java/io/IOException #81 = Class #287 // java/io/UncheckedIOException #82 = Methodref #81.#288 // java/io/UncheckedIOException."":(Ljava/io/IOException;)V #83 = InvokeDynamic #5:#291 // #5:sourcesChanged:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lgw/plugin/integration/ConfigSourceChangeCallback; #84 = InterfaceMethodref #292.#293 // gw/plugin/integration/IIntegrationConfigSourcePlugin.registerChangeCallback:(Lgw/plugin/integration/ConfigSourceChangeCallback;)V #85 = Class #294 // com/guidewire/pl/rest/SwaggerRestServlet #86 = Class #295 // javax/servlet/http/HttpServlet #87 = Class #296 // gw/lang/reflect/ITypeLoaderListener #88 = Utf8 _needsUpdate #89 = Utf8 Ljava/util/concurrent/atomic/AtomicBoolean; #90 = Utf8 _isDev #91 = Utf8 Z #92 = Utf8 _dispatcher #93 = Utf8 Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; #94 = Utf8 _changeListener #95 = Utf8 Lcom/guidewire/pl/integration/watcher/ChangeListener; #96 = Utf8 _extensions #97 = Utf8 Ljava/util/Collection; #98 = Utf8 Signature #99 = Utf8 Ljava/util/Collection; #100 = Utf8 _configRefreshPlugin #101 = Utf8 Lgw/api/rest/IRestConfigRefreshPlugin; #102 = Utf8 #103 = Utf8 ()V #104 = Utf8 Code #105 = Utf8 LineNumberTable #106 = Utf8 LocalVariableTable #107 = Utf8 this #108 = Utf8 Lcom/guidewire/pl/rest/SwaggerRestServlet; #109 = Utf8 init #110 = Utf8 integrationRoots #111 = Utf8 Ljava/util/List; #112 = Utf8 LocalVariableTypeTable #113 = Utf8 Ljava/util/List; #114 = Utf8 StackMapTable #115 = Class #294 // com/guidewire/pl/rest/SwaggerRestServlet #116 = Utf8 Exceptions #117 = Class #297 // javax/servlet/ServletException #118 = Utf8 maybePreload #119 = Utf8 systemConfiguration #120 = Utf8 Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; #121 = Class #298 // com/guidewire/pl/system/server/config/manager/SystemConfiguration #122 = Utf8 preload #123 = Utf8 loadConfigRefreshPlugin #124 = Utf8 ()Lgw/api/rest/IRestConfigRefreshPlugin; #125 = Utf8 plugin #126 = Utf8 pluginConfig #127 = Utf8 Lcom/guidewire/pl/system/integration/plugins/PluginConfig; #128 = Class #299 // com/guidewire/pl/system/integration/plugins/PluginConfig #129 = Utf8 service #130 = Utf8 (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V #131 = Utf8 req #132 = Utf8 Ljavax/servlet/http/HttpServletRequest; #133 = Utf8 resp #134 = Utf8 Ljavax/servlet/http/HttpServletResponse; #135 = Utf8 MethodParameters #136 = Utf8 maybeUpdate #137 = Utf8 isInterested #138 = Utf8 (Ljava/nio/file/Path;)Z #139 = Utf8 ext #140 = Utf8 Ljava/lang/String; #141 = Utf8 path #142 = Utf8 Ljava/nio/file/Path; #143 = Utf8 fileName #144 = Class #275 // java/lang/String #145 = Class #300 // java/util/Iterator #146 = Utf8 update #147 = Class #301 // java/lang/Throwable #148 = Utf8 updateFinished #149 = Utf8 pluginSourcesChanged #150 = Utf8 needsUpdate #151 = Utf8 ()Z #152 = Utf8 scheduleUpdate #153 = Utf8 checkIfNeedsUpdate #154 = Utf8 refreshedTypes #155 = Utf8 (Lgw/lang/reflect/RefreshRequest;)V #156 = Utf8 request #157 = Utf8 Lgw/lang/reflect/RefreshRequest; #158 = Utf8 refreshed #159 = Utf8 destroy #160 = Utf8 e #161 = Utf8 Ljava/io/IOException; #162 = Class #286 // java/io/IOException #163 = Utf8 lambda$init$1 #164 = Utf8 (Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #165 = Utf8 p #166 = Utf8 Lgw/plugin/integration/IIntegrationConfigSourcePlugin; #167 = Utf8 lambda$init$0 #168 = Utf8 ()Lcom/guidewire/pl/rest/dispatch/PathTree; #169 = Utf8 SourceFile #170 = Utf8 SwaggerRestServlet.java #171 = NameAndType #102:#103 // "":()V #172 = Utf8 java/util/concurrent/atomic/AtomicBoolean #173 = NameAndType #102:#302 // "":(Z)V #174 = NameAndType #88:#89 // _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; #175 = NameAndType #109:#103 // init:()V #176 = Class #303 // gw/lang/reflect/TypeSystem #177 = NameAndType #304:#305 // addTypeLoaderListenerAsWeakRef:(Lgw/lang/reflect/ITypeLoaderListener;)V #178 = Class #306 // com/guidewire/pl/system/dependency/PLDependencies #179 = NameAndType #307:#308 // getServerMode:()Lcom/guidewire/pl/system/server/ServerMode; #180 = Class #309 // com/guidewire/pl/system/server/ServerMode #181 = NameAndType #310:#151 // isDev:()Z #182 = NameAndType #90:#91 // _isDev:Z #183 = Utf8 com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher #184 = NameAndType #92:#93 // _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; #185 = NameAndType #123:#124 // loadConfigRefreshPlugin:()Lgw/api/rest/IRestConfigRefreshPlugin; #186 = NameAndType #100:#101 // _configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; #187 = Class #311 // com/guidewire/pl/system/server/InitTab #188 = NameAndType #312:#151 // isRunningTestsInHarness:()Z #189 = NameAndType #313:#314 // getFileExtensionsToWatch:()Ljava/util/Collection; #190 = NameAndType #96:#97 // _extensions:Ljava/util/Collection; #191 = Class #315 // com/guidewire/pl/config/PLConfigResourceKeys #192 = NameAndType #316:#317 // INTEGRATION_DIR_KEY:Lcom/guidewire/modules/key/VDirKey; #193 = Class #318 // com/guidewire/modules/key/VDirKey #194 = NameAndType #319:#320 // getDir:()Lcom/guidewire/modules/file/VirtualDirectory; #195 = Class #321 // com/guidewire/modules/file/VirtualDirectory #196 = NameAndType #322:#323 // resolve:()[Ljava/io/File; #197 = Class #324 // java/util/Arrays #198 = NameAndType #325:#326 // stream:([Ljava/lang/Object;)Ljava/util/stream/Stream; #199 = Utf8 BootstrapMethods #200 = MethodHandle 6:#327 // 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; #201 = MethodType #328 // (Ljava/lang/Object;)Z #202 = MethodHandle 5:#329 // REF_invokeVirtual java/io/File.exists:()Z #203 = MethodType #330 // (Ljava/io/File;)Z #204 = NameAndType #331:#332 // test:()Ljava/util/function/Predicate; #205 = Class #333 // java/util/stream/Stream #206 = NameAndType #334:#335 // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; #207 = MethodType #336 // (Ljava/lang/Object;)Ljava/lang/Object; #208 = MethodHandle 5:#337 // REF_invokeVirtual java/io/File.toPath:()Ljava/nio/file/Path; #209 = MethodType #338 // (Ljava/io/File;)Ljava/nio/file/Path; #210 = NameAndType #339:#340 // apply:()Ljava/util/function/Function; #211 = NameAndType #341:#342 // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; #212 = Class #343 // java/util/stream/Collectors #213 = NameAndType #344:#345 // toList:()Ljava/util/stream/Collector; #214 = NameAndType #346:#347 // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object; #215 = Utf8 java/util/List #216 = MethodHandle 7:#348 // REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.isInterested:(Ljava/nio/file/Path;)Z #217 = MethodType #138 // (Ljava/nio/file/Path;)Z #218 = NameAndType #331:#349 // test:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Predicate; #219 = Class #350 // com/guidewire/pl/integration/watcher/ChangeListener #220 = NameAndType #351:#352 // createDefault:(Ljava/util/List;Ljava/util/function/Predicate;)Lcom/guidewire/pl/integration/watcher/ChangeListener; #221 = NameAndType #94:#95 // _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; #222 = MethodType #168 // ()Lcom/guidewire/pl/rest/dispatch/PathTree; #223 = MethodHandle 7:#353 // REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$0:()Lcom/guidewire/pl/rest/dispatch/PathTree; #224 = NameAndType #354:#358 // getTree:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier; #225 = NameAndType #359:#360 // setRestPathTreeSupplier:(Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier;)V #226 = Class #361 // com/guidewire/pl/json/util/IntegrationConfigSourcePluginCache #227 = NameAndType #362:#363 // getPlugins:()Ljava/util/List; #228 = MethodType #364 // (Ljava/lang/Object;)V #229 = MethodHandle 7:#365 // REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$1:(Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #230 = MethodType #164 // (Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #231 = NameAndType #366:#367 // accept:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Consumer; #232 = NameAndType #368:#369 // forEach:(Ljava/util/function/Consumer;)V #233 = NameAndType #118:#103 // maybePreload:()V #234 = Class #370 // com/guidewire/pl/system/logging/PLLoggerCategory #235 = NameAndType #371:#372 // REST_CONFIG:Lorg/slf4j/Logger; #236 = Utf8 REST Servlet initialized #237 = Class #373 // org/slf4j/Logger #238 = NameAndType #374:#375 // info:(Ljava/lang/String;)V #239 = Class #376 // com/guidewire/pl/system/dependency/ServerDependencies #240 = NameAndType #377:#378 // getSystemConfiguration:()Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; #241 = Class #379 // java/lang/Boolean #242 = NameAndType #380:#381 // TRUE:Ljava/lang/Boolean; #243 = Class #382 // gw/api/system/PLConfigParameters #244 = NameAndType #383:#384 // PreloadRestServletConfig:Lgw/api/system/BooleanParameterKey; #245 = Class #298 // com/guidewire/pl/system/server/config/manager/SystemConfiguration #246 = NameAndType #385:#386 // getParameterValue:(Lgw/api/system/ParameterKey;)Ljava/lang/Object; #247 = NameAndType #387:#328 // equals:(Ljava/lang/Object;)Z #248 = NameAndType #388:#389 // getInstance:()Lcom/guidewire/pl/system/server/InitTab; #249 = NameAndType #390:#391 // getRunLevel:()Lgw/api/system/server/Runlevel; #250 = Class #392 // gw/api/system/server/Runlevel #251 = NameAndType #393:#394 // SHUTDOWN:Lgw/api/system/server/Runlevel; #252 = NameAndType #395:#396 // isLater:(Lgw/api/system/server/Runlevel;)Z #253 = Utf8 Preloading the REST servlet and related configuration files #254 = NameAndType #122:#103 // preload:()V #255 = Utf8 Preload disabled for the REST servlet, loading will happen lazily on the first REST request #256 = NameAndType #397:#168 // getPathTree:()Lcom/guidewire/pl/rest/dispatch/PathTree; #257 = NameAndType #398:#103 // preloadConfig:()V #258 = NameAndType #399:#400 // getPluginConfig:()Lcom/guidewire/pl/system/integration/plugins/PluginConfig; #259 = Utf8 gw/api/rest/IRestConfigRefreshPlugin #260 = Class #299 // com/guidewire/pl/system/integration/plugins/PluginConfig #261 = NameAndType #401:#402 // getPluginDef:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/PluginDef; #262 = NameAndType #403:#404 // getPlugin:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/internal/InternalPlugin; #263 = Utf8 gw/api/rest/DefaultRestConfigRefreshPlugin #264 = NameAndType #136:#103 // maybeUpdate:()V #265 = NameAndType #405:#130 // handleRequest:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V #266 = NameAndType #150:#151 // needsUpdate:()Z #267 = NameAndType #146:#103 // update:()V #268 = Class #406 // java/nio/file/Path #269 = NameAndType #407:#408 // toString:()Ljava/lang/String; #270 = Class #409 // java/util/Collection #271 = NameAndType #410:#411 // iterator:()Ljava/util/Iterator; #272 = Class #300 // java/util/Iterator #273 = NameAndType #412:#151 // hasNext:()Z #274 = NameAndType #413:#414 // next:()Ljava/lang/Object; #275 = Utf8 java/lang/String #276 = NameAndType #415:#416 // endsWith:(Ljava/lang/String;)Z #277 = NameAndType #417:#151 // get:()Z #278 = Utf8 Changes detected to REST config files and/or classes, reloading the REST dispatcher #279 = NameAndType #418:#103 // resetCaches:()V #280 = NameAndType #148:#103 // updateFinished:()V #281 = NameAndType #419:#302 // set:(Z)V #282 = NameAndType #152:#103 // scheduleUpdate:()V #283 = NameAndType #153:#103 // checkIfNeedsUpdate:()V #284 = NameAndType #420:#151 // hasChanges:()Z #285 = NameAndType #421:#103 // close:()V #286 = Utf8 java/io/IOException #287 = Utf8 java/io/UncheckedIOException #288 = NameAndType #102:#422 // "":(Ljava/io/IOException;)V #289 = MethodType #103 // ()V #290 = MethodHandle 7:#423 // REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.pluginSourcesChanged:()V #291 = NameAndType #424:#425 // sourcesChanged:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lgw/plugin/integration/ConfigSourceChangeCallback; #292 = Class #426 // gw/plugin/integration/IIntegrationConfigSourcePlugin #293 = NameAndType #427:#428 // registerChangeCallback:(Lgw/plugin/integration/ConfigSourceChangeCallback;)V #294 = Utf8 com/guidewire/pl/rest/SwaggerRestServlet #295 = Utf8 javax/servlet/http/HttpServlet #296 = Utf8 gw/lang/reflect/ITypeLoaderListener #297 = Utf8 javax/servlet/ServletException #298 = Utf8 com/guidewire/pl/system/server/config/manager/SystemConfiguration #299 = Utf8 com/guidewire/pl/system/integration/plugins/PluginConfig #300 = Utf8 java/util/Iterator #301 = Utf8 java/lang/Throwable #302 = Utf8 (Z)V #303 = Utf8 gw/lang/reflect/TypeSystem #304 = Utf8 addTypeLoaderListenerAsWeakRef #305 = Utf8 (Lgw/lang/reflect/ITypeLoaderListener;)V #306 = Utf8 com/guidewire/pl/system/dependency/PLDependencies #307 = Utf8 getServerMode #308 = Utf8 ()Lcom/guidewire/pl/system/server/ServerMode; #309 = Utf8 com/guidewire/pl/system/server/ServerMode #310 = Utf8 isDev #311 = Utf8 com/guidewire/pl/system/server/InitTab #312 = Utf8 isRunningTestsInHarness #313 = Utf8 getFileExtensionsToWatch #314 = Utf8 ()Ljava/util/Collection; #315 = Utf8 com/guidewire/pl/config/PLConfigResourceKeys #316 = Utf8 INTEGRATION_DIR_KEY #317 = Utf8 Lcom/guidewire/modules/key/VDirKey; #318 = Utf8 com/guidewire/modules/key/VDirKey #319 = Utf8 getDir #320 = Utf8 ()Lcom/guidewire/modules/file/VirtualDirectory; #321 = Utf8 com/guidewire/modules/file/VirtualDirectory #322 = Utf8 resolve #323 = Utf8 ()[Ljava/io/File; #324 = Utf8 java/util/Arrays #325 = Utf8 stream #326 = Utf8 ([Ljava/lang/Object;)Ljava/util/stream/Stream; #327 = Methodref #429.#430 // 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; #328 = Utf8 (Ljava/lang/Object;)Z #329 = Methodref #431.#432 // java/io/File.exists:()Z #330 = Utf8 (Ljava/io/File;)Z #331 = Utf8 test #332 = Utf8 ()Ljava/util/function/Predicate; #333 = Utf8 java/util/stream/Stream #334 = Utf8 filter #335 = Utf8 (Ljava/util/function/Predicate;)Ljava/util/stream/Stream; #336 = Utf8 (Ljava/lang/Object;)Ljava/lang/Object; #337 = Methodref #431.#433 // java/io/File.toPath:()Ljava/nio/file/Path; #338 = Utf8 (Ljava/io/File;)Ljava/nio/file/Path; #339 = Utf8 apply #340 = Utf8 ()Ljava/util/function/Function; #341 = Utf8 map #342 = Utf8 (Ljava/util/function/Function;)Ljava/util/stream/Stream; #343 = Utf8 java/util/stream/Collectors #344 = Utf8 toList #345 = Utf8 ()Ljava/util/stream/Collector; #346 = Utf8 collect #347 = Utf8 (Ljava/util/stream/Collector;)Ljava/lang/Object; #348 = Methodref #85.#434 // com/guidewire/pl/rest/SwaggerRestServlet.isInterested:(Ljava/nio/file/Path;)Z #349 = Utf8 (Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Predicate; #350 = Utf8 com/guidewire/pl/integration/watcher/ChangeListener #351 = Utf8 createDefault #352 = Utf8 (Ljava/util/List;Ljava/util/function/Predicate;)Lcom/guidewire/pl/integration/watcher/ChangeListener; #353 = Methodref #85.#435 // com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$0:()Lcom/guidewire/pl/rest/dispatch/PathTree; #354 = Utf8 getTree #355 = Class #437 // com/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier #356 = Utf8 PathHandlerPathTreeSupplier #357 = Utf8 InnerClasses #358 = Utf8 (Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier; #359 = Utf8 setRestPathTreeSupplier #360 = Utf8 (Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier;)V #361 = Utf8 com/guidewire/pl/json/util/IntegrationConfigSourcePluginCache #362 = Utf8 getPlugins #363 = Utf8 ()Ljava/util/List; #364 = Utf8 (Ljava/lang/Object;)V #365 = Methodref #85.#438 // com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$1:(Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #366 = Utf8 accept #367 = Utf8 (Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Consumer; #368 = Utf8 forEach #369 = Utf8 (Ljava/util/function/Consumer;)V #370 = Utf8 com/guidewire/pl/system/logging/PLLoggerCategory #371 = Utf8 REST_CONFIG #372 = Utf8 Lorg/slf4j/Logger; #373 = Utf8 org/slf4j/Logger #374 = Utf8 info #375 = Utf8 (Ljava/lang/String;)V #376 = Utf8 com/guidewire/pl/system/dependency/ServerDependencies #377 = Utf8 getSystemConfiguration #378 = Utf8 ()Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; #379 = Utf8 java/lang/Boolean #380 = Utf8 TRUE #381 = Utf8 Ljava/lang/Boolean; #382 = Utf8 gw/api/system/PLConfigParameters #383 = Utf8 PreloadRestServletConfig #384 = Utf8 Lgw/api/system/BooleanParameterKey; #385 = Utf8 getParameterValue #386 = Utf8 (Lgw/api/system/ParameterKey;)Ljava/lang/Object; #387 = Utf8 equals #388 = Utf8 getInstance #389 = Utf8 ()Lcom/guidewire/pl/system/server/InitTab; #390 = Utf8 getRunLevel #391 = Utf8 ()Lgw/api/system/server/Runlevel; #392 = Utf8 gw/api/system/server/Runlevel #393 = Utf8 SHUTDOWN #394 = Utf8 Lgw/api/system/server/Runlevel; #395 = Utf8 isLater #396 = Utf8 (Lgw/api/system/server/Runlevel;)Z #397 = Utf8 getPathTree #398 = Utf8 preloadConfig #399 = Utf8 getPluginConfig #400 = Utf8 ()Lcom/guidewire/pl/system/integration/plugins/PluginConfig; #401 = Utf8 getPluginDef #402 = Utf8 (Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/PluginDef; #403 = Utf8 getPlugin #404 = Utf8 (Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/internal/InternalPlugin; #405 = Utf8 handleRequest #406 = Utf8 java/nio/file/Path #407 = Utf8 toString #408 = Utf8 ()Ljava/lang/String; #409 = Utf8 java/util/Collection #410 = Utf8 iterator #411 = Utf8 ()Ljava/util/Iterator; #412 = Utf8 hasNext #413 = Utf8 next #414 = Utf8 ()Ljava/lang/Object; #415 = Utf8 endsWith #416 = Utf8 (Ljava/lang/String;)Z #417 = Utf8 get #418 = Utf8 resetCaches #419 = Utf8 set #420 = Utf8 hasChanges #421 = Utf8 close #422 = Utf8 (Ljava/io/IOException;)V #423 = Methodref #85.#439 // com/guidewire/pl/rest/SwaggerRestServlet.pluginSourcesChanged:()V #424 = Utf8 sourcesChanged #425 = Utf8 (Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lgw/plugin/integration/ConfigSourceChangeCallback; #426 = Utf8 gw/plugin/integration/IIntegrationConfigSourcePlugin #427 = Utf8 registerChangeCallback #428 = Utf8 (Lgw/plugin/integration/ConfigSourceChangeCallback;)V #429 = Class #440 // java/lang/invoke/LambdaMetafactory #430 = NameAndType #441:#444 // 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; #431 = Class #445 // java/io/File #432 = NameAndType #446:#151 // exists:()Z #433 = NameAndType #447:#448 // toPath:()Ljava/nio/file/Path; #434 = NameAndType #137:#138 // isInterested:(Ljava/nio/file/Path;)Z #435 = NameAndType #167:#168 // lambda$init$0:()Lcom/guidewire/pl/rest/dispatch/PathTree; #436 = Class #449 // com/guidewire/pl/rest/dispatch/handler/PathTreeFactory #437 = Utf8 com/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier #438 = NameAndType #163:#164 // lambda$init$1:(Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #439 = NameAndType #149:#103 // pluginSourcesChanged:()V #440 = Utf8 java/lang/invoke/LambdaMetafactory #441 = Utf8 metafactory #442 = Class #451 // java/lang/invoke/MethodHandles$Lookup #443 = Utf8 Lookup #444 = 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; #445 = Utf8 java/io/File #446 = Utf8 exists #447 = Utf8 toPath #448 = Utf8 ()Ljava/nio/file/Path; #449 = Utf8 com/guidewire/pl/rest/dispatch/handler/PathTreeFactory #450 = Class #452 // java/lang/invoke/MethodHandles #451 = Utf8 java/lang/invoke/MethodHandles$Lookup #452 = Utf8 java/lang/invoke/MethodHandles { private final java.util.concurrent.atomic.AtomicBoolean _needsUpdate; descriptor: Ljava/util/concurrent/atomic/AtomicBoolean; flags: (0x0012) ACC_PRIVATE, ACC_FINAL private boolean _isDev; descriptor: Z flags: (0x0002) ACC_PRIVATE private com.guidewire.pl.rest.dispatch.SwaggerRestDispatcher _dispatcher; descriptor: Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; flags: (0x0002) ACC_PRIVATE private com.guidewire.pl.integration.watcher.ChangeListener _changeListener; descriptor: Lcom/guidewire/pl/integration/watcher/ChangeListener; flags: (0x0002) ACC_PRIVATE private java.util.Collection _extensions; descriptor: Ljava/util/Collection; flags: (0x0002) ACC_PRIVATE Signature: #99 // Ljava/util/Collection; private gw.api.rest.IRestConfigRefreshPlugin _configRefreshPlugin; descriptor: Lgw/api/rest/IRestConfigRefreshPlugin; flags: (0x0002) ACC_PRIVATE public com.guidewire.pl.rest.SwaggerRestServlet(); descriptor: ()V flags: (0x0001) ACC_PUBLIC Code: stack=4, locals=1, args_size=1 0: aload_0 1: invokespecial #1 // Method javax/servlet/http/HttpServlet."":()V 4: aload_0 5: new #2 // class java/util/concurrent/atomic/AtomicBoolean 8: dup 9: iconst_0 10: invokespecial #3 // Method java/util/concurrent/atomic/AtomicBoolean."":(Z)V 13: putfield #4 // Field _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; 16: return LineNumberTable: line 37: 0 line 39: 4 LocalVariableTable: Start Length Slot Name Signature 0 17 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; public void init() throws javax.servlet.ServletException; descriptor: ()V flags: (0x0001) ACC_PUBLIC Code: stack=3, locals=2, args_size=1 0: aload_0 1: invokespecial #5 // Method javax/servlet/http/HttpServlet.init:()V 4: aload_0 5: invokestatic #6 // Method gw/lang/reflect/TypeSystem.addTypeLoaderListenerAsWeakRef:(Lgw/lang/reflect/ITypeLoaderListener;)V 8: aload_0 9: invokestatic #7 // Method com/guidewire/pl/system/dependency/PLDependencies.getServerMode:()Lcom/guidewire/pl/system/server/ServerMode; 12: ifnull 30 15: invokestatic #7 // Method com/guidewire/pl/system/dependency/PLDependencies.getServerMode:()Lcom/guidewire/pl/system/server/ServerMode; 18: invokeinterface #8, 1 // InterfaceMethod com/guidewire/pl/system/server/ServerMode.isDev:()Z 23: ifeq 30 26: iconst_1 27: goto 31 30: iconst_0 31: putfield #9 // Field _isDev:Z 34: aload_0 35: new #10 // class com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher 38: dup 39: invokespecial #11 // Method com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher."":()V 42: putfield #12 // Field _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; 45: aload_0 46: aload_0 47: invokespecial #13 // Method loadConfigRefreshPlugin:()Lgw/api/rest/IRestConfigRefreshPlugin; 50: putfield #14 // Field _configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; 53: aload_0 54: getfield #9 // Field _isDev:Z 57: ifeq 137 60: invokestatic #15 // Method com/guidewire/pl/system/server/InitTab.isRunningTestsInHarness:()Z 63: ifne 137 66: aload_0 67: aload_0 68: getfield #14 // Field _configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; 71: invokeinterface #16, 1 // InterfaceMethod gw/api/rest/IRestConfigRefreshPlugin.getFileExtensionsToWatch:()Ljava/util/Collection; 76: putfield #17 // Field _extensions:Ljava/util/Collection; 79: getstatic #18 // Field com/guidewire/pl/config/PLConfigResourceKeys.INTEGRATION_DIR_KEY:Lcom/guidewire/modules/key/VDirKey; 82: invokevirtual #19 // Method com/guidewire/modules/key/VDirKey.getDir:()Lcom/guidewire/modules/file/VirtualDirectory; 85: invokevirtual #20 // Method com/guidewire/modules/file/VirtualDirectory.resolve:()[Ljava/io/File; 88: invokestatic #21 // Method java/util/Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream; 91: invokedynamic #22, 0 // InvokeDynamic #0:test:()Ljava/util/function/Predicate; 96: invokeinterface #23, 2 // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; 101: invokedynamic #24, 0 // InvokeDynamic #1:apply:()Ljava/util/function/Function; 106: invokeinterface #25, 2 // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; 111: invokestatic #26 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector; 114: invokeinterface #27, 2 // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object; 119: checkcast #28 // class java/util/List 122: astore_1 123: aload_0 124: aload_1 125: aload_0 126: invokedynamic #29, 0 // InvokeDynamic #2:test:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Predicate; 131: invokestatic #30 // Method com/guidewire/pl/integration/watcher/ChangeListener.createDefault:(Ljava/util/List;Ljava/util/function/Predicate;)Lcom/guidewire/pl/integration/watcher/ChangeListener; 134: putfield #31 // Field _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; 137: aload_0 138: invokedynamic #32, 0 // InvokeDynamic #3:getTree:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier; 143: invokestatic #33 // Method com/guidewire/pl/system/dependency/PLDependencies.setRestPathTreeSupplier:(Lcom/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier;)V 146: invokestatic #34 // Method com/guidewire/pl/json/util/IntegrationConfigSourcePluginCache.getPlugins:()Ljava/util/List; 149: aload_0 150: invokedynamic #35, 0 // InvokeDynamic #4:accept:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Ljava/util/function/Consumer; 155: invokeinterface #36, 2 // InterfaceMethod java/util/List.forEach:(Ljava/util/function/Consumer;)V 160: aload_0 161: invokespecial #37 // Method maybePreload:()V 164: getstatic #38 // Field com/guidewire/pl/system/logging/PLLoggerCategory.REST_CONFIG:Lorg/slf4j/Logger; 167: ldc #39 // String REST Servlet initialized 169: invokeinterface #40, 2 // InterfaceMethod org/slf4j/Logger.info:(Ljava/lang/String;)V 174: return LineNumberTable: line 50: 0 line 51: 4 line 54: 8 line 55: 34 line 56: 45 line 59: 53 line 60: 66 line 61: 79 line 62: 123 line 64: 137 line 65: 146 line 66: 160 line 67: 164 line 68: 174 LocalVariableTable: Start Length Slot Name Signature 123 14 1 integrationRoots Ljava/util/List; 0 175 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; LocalVariableTypeTable: Start Length Slot Name Signature 123 14 1 integrationRoots Ljava/util/List; StackMapTable: number_of_entries = 3 frame_type = 94 /* same_locals_1_stack_item */ stack = [ class com/guidewire/pl/rest/SwaggerRestServlet ] frame_type = 255 /* full_frame */ offset_delta = 0 locals = [ class com/guidewire/pl/rest/SwaggerRestServlet ] stack = [ class com/guidewire/pl/rest/SwaggerRestServlet, int ] frame_type = 251 /* same_frame_extended */ offset_delta = 105 Exceptions: throws javax.servlet.ServletException private void maybePreload(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=3, locals=2, args_size=1 0: invokestatic #41 // Method com/guidewire/pl/system/dependency/ServerDependencies.getSystemConfiguration:()Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; 3: astore_1 4: aload_1 5: ifnull 58 8: getstatic #42 // Field java/lang/Boolean.TRUE:Ljava/lang/Boolean; 11: aload_1 12: getstatic #43 // Field gw/api/system/PLConfigParameters.PreloadRestServletConfig:Lgw/api/system/BooleanParameterKey; 15: invokeinterface #44, 2 // InterfaceMethod com/guidewire/pl/system/server/config/manager/SystemConfiguration.getParameterValue:(Lgw/api/system/ParameterKey;)Ljava/lang/Object; 20: invokevirtual #45 // Method java/lang/Boolean.equals:(Ljava/lang/Object;)Z 23: ifeq 58 26: invokestatic #46 // Method com/guidewire/pl/system/server/InitTab.getInstance:()Lcom/guidewire/pl/system/server/InitTab; 29: invokevirtual #47 // Method com/guidewire/pl/system/server/InitTab.getRunLevel:()Lgw/api/system/server/Runlevel; 32: getstatic #48 // Field gw/api/system/server/Runlevel.SHUTDOWN:Lgw/api/system/server/Runlevel; 35: invokevirtual #49 // Method gw/api/system/server/Runlevel.isLater:(Lgw/api/system/server/Runlevel;)Z 38: ifeq 58 41: getstatic #38 // Field com/guidewire/pl/system/logging/PLLoggerCategory.REST_CONFIG:Lorg/slf4j/Logger; 44: ldc #50 // String Preloading the REST servlet and related configuration files 46: invokeinterface #40, 2 // InterfaceMethod org/slf4j/Logger.info:(Ljava/lang/String;)V 51: aload_0 52: invokespecial #51 // Method preload:()V 55: goto 68 58: getstatic #38 // Field com/guidewire/pl/system/logging/PLLoggerCategory.REST_CONFIG:Lorg/slf4j/Logger; 61: ldc #52 // String Preload disabled for the REST servlet, loading will happen lazily on the first REST request 63: invokeinterface #40, 2 // InterfaceMethod org/slf4j/Logger.info:(Ljava/lang/String;)V 68: return LineNumberTable: line 71: 0 line 72: 4 line 73: 15 line 74: 26 line 75: 41 line 76: 51 line 78: 58 line 80: 68 LocalVariableTable: Start Length Slot Name Signature 0 69 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 4 65 1 systemConfiguration Lcom/guidewire/pl/system/server/config/manager/SystemConfiguration; StackMapTable: number_of_entries = 2 frame_type = 252 /* append */ offset_delta = 58 locals = [ class com/guidewire/pl/system/server/config/manager/SystemConfiguration ] frame_type = 9 /* same */ private void preload(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=1, locals=1, args_size=1 0: aload_0 1: getfield #12 // Field _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; 4: invokevirtual #53 // Method com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher.getPathTree:()Lcom/guidewire/pl/rest/dispatch/PathTree; 7: pop 8: aload_0 9: getfield #14 // Field _configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; 12: invokeinterface #54, 1 // InterfaceMethod gw/api/rest/IRestConfigRefreshPlugin.preloadConfig:()V 17: return LineNumberTable: line 84: 0 line 85: 8 line 86: 17 LocalVariableTable: Start Length Slot Name Signature 0 18 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; private gw.api.rest.IRestConfigRefreshPlugin loadConfigRefreshPlugin(); descriptor: ()Lgw/api/rest/IRestConfigRefreshPlugin; flags: (0x0002) ACC_PRIVATE Code: stack=2, locals=3, args_size=1 0: invokestatic #55 // Method com/guidewire/pl/system/dependency/PLDependencies.getPluginConfig:()Lcom/guidewire/pl/system/integration/plugins/PluginConfig; 3: astore_1 4: aload_1 5: ifnull 37 8: aload_1 9: ldc #56 // class gw/api/rest/IRestConfigRefreshPlugin 11: invokeinterface #57, 2 // InterfaceMethod com/guidewire/pl/system/integration/plugins/PluginConfig.getPluginDef:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/PluginDef; 16: ifnull 37 19: aload_1 20: ldc #56 // class gw/api/rest/IRestConfigRefreshPlugin 22: invokeinterface #58, 2 // InterfaceMethod com/guidewire/pl/system/integration/plugins/PluginConfig.getPlugin:(Ljava/lang/Class;)Lcom/guidewire/pl/system/integration/plugins/internal/InternalPlugin; 27: checkcast #56 // class gw/api/rest/IRestConfigRefreshPlugin 30: astore_2 31: aload_2 32: ifnull 37 35: aload_2 36: areturn 37: new #59 // class gw/api/rest/DefaultRestConfigRefreshPlugin 40: dup 41: invokespecial #60 // Method gw/api/rest/DefaultRestConfigRefreshPlugin."":()V 44: astore_2 45: aload_2 46: areturn LineNumberTable: line 89: 0 line 90: 4 line 91: 19 line 92: 31 line 93: 35 line 96: 37 line 97: 45 LocalVariableTable: Start Length Slot Name Signature 31 6 2 plugin Lgw/api/rest/IRestConfigRefreshPlugin; 0 47 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 4 43 1 pluginConfig Lcom/guidewire/pl/system/integration/plugins/PluginConfig; 45 2 2 plugin Lgw/api/rest/IRestConfigRefreshPlugin; StackMapTable: number_of_entries = 1 frame_type = 252 /* append */ offset_delta = 37 locals = [ class com/guidewire/pl/system/integration/plugins/PluginConfig ] protected void service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse); descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V flags: (0x0004) ACC_PROTECTED Code: stack=3, locals=3, args_size=3 0: aload_0 1: invokevirtual #61 // Method maybeUpdate:()V 4: aload_0 5: getfield #12 // Field _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; 8: aload_1 9: aload_2 10: invokevirtual #62 // Method com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher.handleRequest:(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V 13: return LineNumberTable: line 102: 0 line 103: 4 line 104: 13 LocalVariableTable: Start Length Slot Name Signature 0 14 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 0 14 1 req Ljavax/servlet/http/HttpServletRequest; 0 14 2 resp Ljavax/servlet/http/HttpServletResponse; MethodParameters: Name Flags req resp protected void maybeUpdate(); descriptor: ()V flags: (0x0004) ACC_PROTECTED Code: stack=1, locals=1, args_size=1 0: aload_0 1: getfield #9 // Field _isDev:Z 4: ifeq 18 7: aload_0 8: invokespecial #63 // Method needsUpdate:()Z 11: ifeq 18 14: aload_0 15: invokespecial #64 // Method update:()V 18: return LineNumberTable: line 107: 0 line 108: 7 line 109: 14 line 112: 18 LocalVariableTable: Start Length Slot Name Signature 0 19 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; StackMapTable: number_of_entries = 1 frame_type = 18 /* same */ private boolean isInterested(java.nio.file.Path); descriptor: (Ljava/nio/file/Path;)Z flags: (0x0002) ACC_PRIVATE Code: stack=2, locals=5, args_size=2 0: aload_1 1: invokeinterface #65, 1 // InterfaceMethod java/nio/file/Path.toString:()Ljava/lang/String; 6: astore_2 7: aload_0 8: getfield #17 // Field _extensions:Ljava/util/Collection; 11: invokeinterface #66, 1 // InterfaceMethod java/util/Collection.iterator:()Ljava/util/Iterator; 16: astore_3 17: aload_3 18: invokeinterface #67, 1 // InterfaceMethod java/util/Iterator.hasNext:()Z 23: ifeq 51 26: aload_3 27: invokeinterface #68, 1 // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object; 32: checkcast #69 // class java/lang/String 35: astore 4 37: aload_2 38: aload 4 40: invokevirtual #70 // Method java/lang/String.endsWith:(Ljava/lang/String;)Z 43: ifeq 48 46: iconst_1 47: ireturn 48: goto 17 51: iconst_0 52: ireturn LineNumberTable: line 115: 0 line 116: 7 line 117: 37 line 118: 46 line 120: 48 line 121: 51 LocalVariableTable: Start Length Slot Name Signature 37 11 4 ext Ljava/lang/String; 0 53 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 0 53 1 path Ljava/nio/file/Path; 7 46 2 fileName Ljava/lang/String; StackMapTable: number_of_entries = 3 frame_type = 253 /* append */ offset_delta = 17 locals = [ class java/lang/String, class java/util/Iterator ] frame_type = 30 /* same */ frame_type = 250 /* chop */ offset_delta = 2 MethodParameters: Name Flags path private synchronized void update(); descriptor: ()V flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED Code: stack=3, locals=2, args_size=1 0: aload_0 1: getfield #4 // Field _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; 4: invokevirtual #71 // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z 7: ifeq 54 10: getstatic #38 // Field com/guidewire/pl/system/logging/PLLoggerCategory.REST_CONFIG:Lorg/slf4j/Logger; 13: ldc #72 // String Changes detected to REST config files and/or classes, reloading the REST dispatcher 15: invokeinterface #40, 2 // InterfaceMethod org/slf4j/Logger.info:(Ljava/lang/String;)V 20: aload_0 21: getfield #14 // Field _configRefreshPlugin:Lgw/api/rest/IRestConfigRefreshPlugin; 24: invokeinterface #73, 1 // InterfaceMethod gw/api/rest/IRestConfigRefreshPlugin.resetCaches:()V 29: aload_0 30: new #10 // class com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher 33: dup 34: invokespecial #11 // Method com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher."":()V 37: putfield #12 // Field _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; 40: aload_0 41: invokespecial #74 // Method updateFinished:()V 44: goto 54 47: astore_1 48: aload_0 49: invokespecial #74 // Method updateFinished:()V 52: aload_1 53: athrow 54: return Exception table: from to target type 20 40 47 any LineNumberTable: line 129: 0 line 130: 10 line 132: 20 line 133: 29 line 135: 40 line 136: 44 line 135: 47 line 136: 52 line 138: 54 LocalVariableTable: Start Length Slot Name Signature 0 55 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; StackMapTable: number_of_entries = 2 frame_type = 111 /* same_locals_1_stack_item */ stack = [ class java/lang/Throwable ] frame_type = 6 /* same */ private void updateFinished(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=2, locals=1, args_size=1 0: aload_0 1: getfield #4 // Field _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; 4: iconst_0 5: invokevirtual #75 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V 8: return LineNumberTable: line 141: 0 line 142: 8 LocalVariableTable: Start Length Slot Name Signature 0 9 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; private void pluginSourcesChanged(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #76 // Method scheduleUpdate:()V 4: return LineNumberTable: line 145: 0 line 146: 4 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; private boolean needsUpdate(); descriptor: ()Z flags: (0x0002) ACC_PRIVATE Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #77 // Method checkIfNeedsUpdate:()V 4: aload_0 5: getfield #4 // Field _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; 8: invokevirtual #71 // Method java/util/concurrent/atomic/AtomicBoolean.get:()Z 11: ireturn LineNumberTable: line 149: 0 line 150: 4 LocalVariableTable: Start Length Slot Name Signature 0 12 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; private void scheduleUpdate(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=2, locals=1, args_size=1 0: aload_0 1: getfield #4 // Field _needsUpdate:Ljava/util/concurrent/atomic/AtomicBoolean; 4: iconst_1 5: invokevirtual #75 // Method java/util/concurrent/atomic/AtomicBoolean.set:(Z)V 8: return LineNumberTable: line 154: 0 line 155: 8 LocalVariableTable: Start Length Slot Name Signature 0 9 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; private void checkIfNeedsUpdate(); descriptor: ()V flags: (0x0002) ACC_PRIVATE Code: stack=1, locals=1, args_size=1 0: aload_0 1: getfield #31 // Field _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; 4: ifnull 21 7: aload_0 8: getfield #31 // Field _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; 11: invokevirtual #78 // Method com/guidewire/pl/integration/watcher/ChangeListener.hasChanges:()Z 14: ifeq 21 17: aload_0 18: invokespecial #76 // Method scheduleUpdate:()V 21: return LineNumberTable: line 158: 0 line 159: 17 line 161: 21 LocalVariableTable: Start Length Slot Name Signature 0 22 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; StackMapTable: number_of_entries = 1 frame_type = 21 /* same */ public void refreshedTypes(gw.lang.reflect.RefreshRequest); descriptor: (Lgw/lang/reflect/RefreshRequest;)V flags: (0x0001) ACC_PUBLIC Code: stack=1, locals=2, args_size=2 0: aload_0 1: invokespecial #76 // Method scheduleUpdate:()V 4: return LineNumberTable: line 165: 0 line 166: 4 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 0 5 1 request Lgw/lang/reflect/RefreshRequest; MethodParameters: Name Flags request public void refreshed(); descriptor: ()V flags: (0x0001) ACC_PUBLIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: invokespecial #76 // Method scheduleUpdate:()V 4: return LineNumberTable: line 170: 0 line 171: 4 LocalVariableTable: Start Length Slot Name Signature 0 5 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; public void destroy(); descriptor: ()V flags: (0x0001) ACC_PUBLIC Code: stack=3, locals=2, args_size=1 0: aload_0 1: getfield #31 // Field _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; 4: ifnull 14 7: aload_0 8: getfield #31 // Field _changeListener:Lcom/guidewire/pl/integration/watcher/ChangeListener; 11: invokevirtual #79 // Method com/guidewire/pl/integration/watcher/ChangeListener.close:()V 14: goto 27 17: astore_1 18: new #81 // class java/io/UncheckedIOException 21: dup 22: aload_1 23: invokespecial #82 // Method java/io/UncheckedIOException."":(Ljava/io/IOException;)V 26: athrow 27: return Exception table: from to target type 0 14 17 Class java/io/IOException LineNumberTable: line 176: 0 line 177: 7 line 181: 14 line 179: 17 line 180: 18 line 182: 27 LocalVariableTable: Start Length Slot Name Signature 18 9 1 e Ljava/io/IOException; 0 28 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; StackMapTable: number_of_entries = 3 frame_type = 14 /* same */ frame_type = 66 /* same_locals_1_stack_item */ stack = [ class java/io/IOException ] frame_type = 9 /* same */ private void lambda$init$1(gw.plugin.integration.IIntegrationConfigSourcePlugin); descriptor: (Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC Code: stack=2, locals=2, args_size=2 0: aload_1 1: aload_0 2: invokedynamic #83, 0 // InvokeDynamic #5:sourcesChanged:(Lcom/guidewire/pl/rest/SwaggerRestServlet;)Lgw/plugin/integration/ConfigSourceChangeCallback; 7: invokeinterface #84, 2 // InterfaceMethod gw/plugin/integration/IIntegrationConfigSourcePlugin.registerChangeCallback:(Lgw/plugin/integration/ConfigSourceChangeCallback;)V 12: return LineNumberTable: line 65: 0 LocalVariableTable: Start Length Slot Name Signature 0 13 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; 0 13 1 p Lgw/plugin/integration/IIntegrationConfigSourcePlugin; MethodParameters: Name Flags p synthetic private com.guidewire.pl.rest.dispatch.PathTree lambda$init$0(); descriptor: ()Lcom/guidewire/pl/rest/dispatch/PathTree; flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC Code: stack=1, locals=1, args_size=1 0: aload_0 1: getfield #12 // Field _dispatcher:Lcom/guidewire/pl/rest/dispatch/SwaggerRestDispatcher; 4: invokevirtual #53 // Method com/guidewire/pl/rest/dispatch/SwaggerRestDispatcher.getPathTree:()Lcom/guidewire/pl/rest/dispatch/PathTree; 7: areturn LineNumberTable: line 64: 0 LocalVariableTable: Start Length Slot Name Signature 0 8 0 this Lcom/guidewire/pl/rest/SwaggerRestServlet; } SourceFile: "SwaggerRestServlet.java" InnerClasses: public static #356= #355 of #436; // PathHandlerPathTreeSupplier=class com/guidewire/pl/rest/dispatch/handler/PathTreeFactory$PathHandlerPathTreeSupplier of class com/guidewire/pl/rest/dispatch/handler/PathTreeFactory public static final #443= #442 of #450; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles BootstrapMethods: 0: #200 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: #201 (Ljava/lang/Object;)Z #202 REF_invokeVirtual java/io/File.exists:()Z #203 (Ljava/io/File;)Z 1: #200 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: #207 (Ljava/lang/Object;)Ljava/lang/Object; #208 REF_invokeVirtual java/io/File.toPath:()Ljava/nio/file/Path; #209 (Ljava/io/File;)Ljava/nio/file/Path; 2: #200 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: #201 (Ljava/lang/Object;)Z #216 REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.isInterested:(Ljava/nio/file/Path;)Z #217 (Ljava/nio/file/Path;)Z 3: #200 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: #222 ()Lcom/guidewire/pl/rest/dispatch/PathTree; #223 REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$0:()Lcom/guidewire/pl/rest/dispatch/PathTree; #222 ()Lcom/guidewire/pl/rest/dispatch/PathTree; 4: #200 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: #228 (Ljava/lang/Object;)V #229 REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.lambda$init$1:(Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V #230 (Lgw/plugin/integration/IIntegrationConfigSourcePlugin;)V 5: #200 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: #289 ()V #290 REF_invokeSpecial com/guidewire/pl/rest/SwaggerRestServlet.pluginSourcesChanged:()V #289 ()V