Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8285914

AppCDS crash when using shared archive with old class file

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b22
    • CPU:
      x86_64
    • OS:
      linux

      Description

      ADDITIONAL SYSTEM INFORMATION :
      Fedora 35, OpenJDK 18.0.1 / 17.0.3

      A DESCRIPTION OF THE PROBLEM :
      While trying to realize the benefit of AppCDS with our moderately intensive application, we reliably crash with SEGV in SystemDictionary::load_shared_lambda_proxy_class. The same crash affects 18.0.1 and 17.0.3. It seems to relate to extending a class in an old format from the popular JUnit library.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Download the popular JUnit JAR from Maven Central, version 4.13.2:
      https://search.maven.org/remotecontent?filepath=junit/junit/4.13.2/junit-4.13.2.jar

      Compile the attached source code against JUnit:
      % javac -cp junit-4.13.2.jar JsaCrash.java

      Create a JAR:
      % jar cf jsacrash.jar *.class

      Create a dynamic shared archive:
      % java -XX:ArchiveClassesAtExit=test.jsa -cp junit-4.13.2.jar:jsacrash.jar JsaCrash

      Run the same code with the shared archive:
      % java -XX:SharedArchiveFile=test.jsa -cp junit-4.13.2.jar:jsacrash.jar JsaCrash

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The example program should print out 'done!' and exit successfully.
      ACTUAL -
      #
      # A fatal error has been detected by the Java Runtime Environment:
      #
      # SIGSEGV (0xb) at pc=0x00007f7ff024d1b6, pid=159584, tid=159585
      #
      # JRE version: OpenJDK Runtime Environment (18.0.1+10) (build 18.0.1+10-24)
      # Java VM: OpenJDK 64-Bit Server VM (18.0.1+10-24, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      # Problematic frame:
      # V [libjvm.so+0xd511b6] SystemDictionary::load_shared_lambda_proxy_class(InstanceKlass*, Handle, Handle, PackageEntry*, JavaThread*)+0x26
      #
      # Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h" (or dumping to /home/steven/tmp/core.159584)
      #
      # If you would like to submit a bug report, please visit:
      # https://bugreport.java.com/bugreport/crash.jsp
      #

      --------------- S U M M A R Y ------------

      Command Line: -XX:SharedArchiveFile=test.jsa JsaCrash

      Host: AMD Ryzen 7 3700X 8-Core Processor, 16 cores, 31G, Fedora release 35 (Thirty Five)
      Time: Mon Apr 25 23:19:53 2022 PDT elapsed time: 0.046148 seconds (0d 0h 0m 0s)

      --------------- T H R E A D ---------------

      Current thread (0x00007f7fe8025890): JavaThread "main" [_thread_in_vm, id=159585, stack(0x00007f7fef31b000,0x00007f7fef41b000)]

      Stack: [0x00007f7fef31b000,0x00007f7fef41b000], sp=0x00007f7fef418a80, free space=1014k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xd511b6] SystemDictionary::load_shared_lambda_proxy_class(InstanceKlass*, Handle, Handle, PackageEntry*, JavaThread*)+0x26
      V [libjvm.so+0xd56e91] SystemDictionaryShared::prepare_shared_lambda_proxy_class(InstanceKlass*, InstanceKlass*, JavaThread*)+0xf1
      V [libjvm.so+0x8e5a3e] JVM_LookupLambdaProxyClassFromArchive+0x24e
      j java.lang.invoke.LambdaProxyClassArchive.findFromArchive(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;+0 java.base@18.0.1
      j java.lang.invoke.LambdaProxyClassArchive.find(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z[Ljava/lang/Class;[Ljava/lang/invoke/MethodType;)Ljava/lang/Class;+59 java.base@18.0.1
      j java.lang.invoke.InnerClassLambdaMetafactory.spinInnerClass()Ljava/lang/Class;+96 java.base@18.0.1
      j java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite()Ljava/lang/invoke/CallSite;+1 java.base@18.0.1
      j 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;+67 java.base@18.0.1
      j java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@18.0.1
      j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+28 java.base@18.0.1
      j java.lang.invoke.BootstrapMethodInvoker.invoke(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+319 java.base@18.0.1
      j java.lang.invoke.CallSite.makeSite(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;+8 java.base@18.0.1
      j java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+6 java.base@18.0.1
      j java.lang.invoke.MethodHandleNatives.linkCallSite(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+45 java.base@18.0.1
      v ~StubRoutines::call_stub
      V [libjvm.so+0x80c645] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x315
      V [libjvm.so+0x80c9ec] JavaCalls::call_static(JavaValue*, Klass*, Symbol*, Symbol*, JavaCallArguments*, JavaThread*)+0x10c
      V [libjvm.so+0xd4d807] SystemDictionary::invoke_bootstrap_method(BootstrapInfo&, JavaThread*)+0x217
      V [libjvm.so+0xa6eb52] LinkResolver::resolve_dynamic_call(CallInfo&, BootstrapInfo&, JavaThread*)+0x22
      V [libjvm.so+0xa6ecee] LinkResolver::resolve_invokedynamic(CallInfo&, constantPoolHandle const&, int, JavaThread*)+0xbe
      V [libjvm.so+0x805e01] InterpreterRuntime::resolve_invokedynamic(JavaThread*)+0x121
      V [libjvm.so+0x807aed] InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code)+0x18d
      j JsaCrash$Builder.addContext(LJsaCrash$Builder$ContextBuilder;Ljava/lang/Class;)LJsaCrash$Builder;+2
      j JsaCrash$Builder$ContextBuilder.as(Ljava/lang/Class;)LJsaCrash$Builder;+6
      j JsaCrash.main([Ljava/lang/String;)V+10
      v ~StubRoutines::call_stub
      V [libjvm.so+0x80c645] JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x315
      V [libjvm.so+0x8a5e2d] jni_invoke_static(JNIEnv_*, JavaValue*, _jobject*, JNICallType, _jmethodID*, JNI_ArgumentPusher*, JavaThread*) [clone .constprop.1]+0x38d
      V [libjvm.so+0x8a8bee] jni_CallStaticVoidMethod+0x15e
      C [libjli.so+0x46ae] JavaMain+0xcfe
      C [libjli.so+0x7d29] ThreadJavaMain+0x9

      Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
      j java.lang.invoke.LambdaProxyClassArchive.findFromArchive(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MemberName;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;+0 java.base@18.0.1
      j java.lang.invoke.LambdaProxyClassArchive.find(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z[Ljava/lang/Class;[Ljava/lang/invoke/MethodType;)Ljava/lang/Class;+59 java.base@18.0.1
      j java.lang.invoke.InnerClassLambdaMetafactory.spinInnerClass()Ljava/lang/Class;+96 java.base@18.0.1
      j java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite()Ljava/lang/invoke/CallSite;+1 java.base@18.0.1
      j 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;+67 java.base@18.0.1
      j java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base@18.0.1
      j java.lang.invoke.Invokers$Holder.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+28 java.base@18.0.1
      j java.lang.invoke.BootstrapMethodInvoker.invoke(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;+319 java.base@18.0.1
      j java.lang.invoke.CallSite.makeSite(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/invoke/CallSite;+8 java.base@18.0.1
      j java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+6 java.base@18.0.1
      j java.lang.invoke.MethodHandleNatives.linkCallSite(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;+45 java.base@18.0.1
      v ~StubRoutines::call_stub
      j JsaCrash$Builder.addContext(LJsaCrash$Builder$ContextBuilder;Ljava/lang/Class;)LJsaCrash$Builder;+2
      j JsaCrash$Builder$ContextBuilder.as(Ljava/lang/Class;)LJsaCrash$Builder;+6
      j JsaCrash.main([Ljava/lang/String;)V+10
      v ~StubRoutines::call_stub

      siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000018

      Register to memory mapping:

      RAX=0x0 is NULL
      RBX=0x00007f7fe8025890 is a thread
      RCX=0x0 is NULL
      RDX=0x00007f7f7001bcf0 points into unknown readable memory: 0x000000062a02efd0 | d0 ef 02 2a 06 00 00 00
      RSP=0x00007f7fef418a80 is pointing into the stack for thread: 0x00007f7fe8025890
      RBP=0x00007f7fef418af0 is pointing into the stack for thread: 0x00007f7fe8025890
      RSI=0x00007f7f7001bcd8 points into unknown readable memory: 0x00000007ffb56068 | 68 60 b5 ff 07 00 00 00
      RDI=0x0000000800bbdd68 is pointing into metadata
      R8 =0x00007f7fe8025890 is a thread
      R9 =0x00007f7f7001bce8 points into unknown readable memory: 0x000000062a039138 | 38 91 03 2a 06 00 00 00
      R10=0x000000080045cb10 is pointing into metadata
      R11=0x000000080044f8e8 is pointing into metadata
      R12=0x0000000800bbdd68 is pointing into metadata
      R13=0x0000000800bbdd68 is pointing into metadata
      R14=0x00007f7f7001bcd8 points into unknown readable memory: 0x00000007ffb56068 | 68 60 b5 ff 07 00 00 00
      R15=0x00007f7f7001bcf0 points into unknown readable memory: 0x000000062a02efd0 | d0 ef 02 2a 06 00 00 00


      Registers:
      RAX=0x0000000000000000, RBX=0x00007f7fe8025890, RCX=0x0000000000000000, RDX=0x00007f7f7001bcf0
      RSP=0x00007f7fef418a80, RBP=0x00007f7fef418af0, RSI=0x00007f7f7001bcd8, RDI=0x0000000800bbdd68
      R8 =0x00007f7fe8025890, R9 =0x00007f7f7001bce8, R10=0x000000080045cb10, R11=0x000000080044f8e8
      R12=0x0000000800bbdd68, R13=0x0000000800bbdd68, R14=0x00007f7f7001bcd8, R15=0x00007f7f7001bcf0
      RIP=0x00007f7ff024d1b6, EFLAGS=0x0000000000010256, CSGSFS=0x002b000000000033, ERR=0x0000000000000004
        TRAPNO=0x000000000000000e

      Top of Stack: (sp=0x00007f7fef418a80)
      0x00007f7fef418a80: 00007f7fe8025890 00007f7f7001bcd8
      0x00007f7fef418a90: 0000000000000000 0000000000000002
      0x00007f7fef418aa0: 00007f7fef418af0 00007f7fefa08eb3
      0x00007f7fef418ab0: 0000000000000000 00007f7f7001bce8

      Instructions: (pc=0x00007f7ff024d1b6)
      0x00007f7ff024d0b6: b8 0f 85 bb 00 00 00 0f b7 77 04 0f 1f 80 00 00
      0x00007f7ff024d0c6: 00 00 44 0f b7 fe 45 85 ff 74 aa eb 95 0f 1f 44
      0x00007f7ff024d0d6: 00 00 4c 8b b1 18 02 00 00 48 89 55 b8 48 89 4d
      0x00007f7ff024d0e6: c0 49 8b 46 18 49 8b 5e 10 4d 8b 66 20 48 89 45
      0x00007f7ff024d0f6: c8 49 8b 46 28 48 89 45 b0 e8 5c ba fe ff 41 8d
      0x00007f7ff024d106: 77 fe 48 8d 78 01 e8 6f 02 ff ff 48 8b 4d c0 48
      0x00007f7ff024d116: 8b 55 b8 4c 89 ee 48 89 c7 49 89 c7 e8 19 e2 ff
      0x00007f7ff024d126: ff 49 89 c5 4d 85 ff 74 08 4c 89 ff e8 39 c7 fe
      0x00007f7ff024d136: ff 48 83 3b 00 74 14 48 8b 75 b0 4c 89 f7 e8 e7
      0x00007f7ff024d146: 50 66 ff 48 89 df e8 0f 47 66 ff 66 48 0f 6e c3
      0x00007f7ff024d156: 4d 89 66 20 4c 89 e8 0f 16 45 c8 41 0f 11 46 10
      0x00007f7ff024d166: 48 83 c4 28 5b 41 5c 41 5d 41 5e 41 5f 5d c3 0f
      0x00007f7ff024d176: 1f 00 48 83 c4 28 4c 89 ee 5b 41 5c 41 5d 41 5e
      0x00007f7ff024d186: 41 5f 5d e9 72 fd ff ff 66 90 55 48 89 e5 41 57
      0x00007f7ff024d196: 49 89 d7 41 56 49 89 f6 41 55 49 89 fd 41 54 53
      0x00007f7ff024d1a6: 4c 89 c3 48 83 ec 48 48 89 4d c0 e8 ca 5b 00 00
      0x00007f7ff024d1b6: 4c 8b 40 18 49 89 c4 41 0f b7 70 04 66 83 fe 01
      0x00007f7ff024d1c6: 0f 86 e4 00 00 00 41 80 78 06 5b 0f 84 b9 00 00
      0x00007f7ff024d1d6: 00 8d 46 ff 48 98 41 80 7c 00 06 3b 75 0c 41 80
      0x00007f7ff024d1e6: 78 06 4c 0f 84 d1 00 00 00 90 4c 89 c7 48 89 d9
      0x00007f7ff024d1f6: 4c 89 fa 4c 89 f6 4c 89 45 c8 e8 3b e1 ff ff 4c
      0x00007f7ff024d206: 8b 45 c8 48 83 7b 08 00 75 05 48 85 c0 75 1f 48
      0x00007f7ff024d216: 89 da be 01 00 00 00 4c 89 c7 48 89 45 c8 e8 e7
      0x00007f7ff024d226: 87 ff ff 48 83 7b 08 00 48 8b 45 c8 75 05 49 39
      0x00007f7ff024d236: c4 74 17 48 83 c4 48 31 c0 5b 41 5c 41 5d 41 5e
      0x00007f7ff024d246: 41 5f 5d c3 66 0f 1f 44 00 00 4c 89 e6 4c 89 ef
      0x00007f7ff024d256: e8 25 95 a9 ff 4c 8b 45 c0 31 c9 49 89 d9 4c 89
      0x00007f7ff024d266: fa 4c 89 f6 4c 89 ef e8 9e f3 ff ff 48 83 7b 08
      0x00007f7ff024d276: 00 75 c0 48 83 c4 48 5b 41 5c 41 5d 41 5e 41 5f
      0x00007f7ff024d286: 5d c3 0f 1f 84 00 00 00 00 00 4c 89 c7 4c 89 45
      0x00007f7ff024d296: c8 e8 44 9b f7 ff 4c 8b 45 c8 84 c0 0f 85 f8 00
      0x00007f7ff024d2a6: 00 00 41 0f b7 70 04 0f 1f 00 85 f6 0f 84 38 ff


      Stack slot to memory mapping:
      stack at sp + 0 slots: 0x00007f7fe8025890 is a thread
      stack at sp + 1 slots: 0x00007f7f7001bcd8 points into unknown readable memory: 0x00000007ffb56068 | 68 60 b5 ff 07 00 00 00
      stack at sp + 2 slots: 0x0 is NULL
      stack at sp + 3 slots: 0x0000000000000002 is an unknown value
      stack at sp + 4 slots: 0x00007f7fef418af0 is pointing into the stack for thread: 0x00007f7fe8025890
      stack at sp + 5 slots: 0x00007f7fefa08eb3: <offset 0x000000000050ceb3> in /home/steven/tmpjdk/jdk-18.0.1/lib/server/libjvm.so at 0x00007f7fef4fc000
      stack at sp + 6 slots: 0x0 is NULL
      stack at sp + 7 slots: 0x00007f7f7001bce8 points into unknown readable memory: 0x000000062a039138 | 38 91 03 2a 06 00 00 00


      --------------- P R O C E S S ---------------

      Threads class SMR info:
      _java_thread_list=0x00007f7f7c086d50, length=12, elements={
      0x00007f7fe8025890, 0x00007f7fe80fd5b0, 0x00007f7fe80fea50, 0x00007f7fe8104610,
      0x00007f7fe81059b0, 0x00007f7fe8106db0, 0x00007f7fe81087d0, 0x00007f7fe8109cf0,
      0x00007f7fe810b150, 0x00007f7fe8112c00, 0x00007f7fe81163d0, 0x00007f7f7c085db0
      }

      Java Threads: ( => current thread )
      =>0x00007f7fe8025890 JavaThread "main" [_thread_in_vm, id=159585, stack(0x00007f7fef31b000,0x00007f7fef41b000)]
        0x00007f7fe80fd5b0 JavaThread "Reference Handler" daemon [_thread_blocked, id=159592, stack(0x00007f7fbd033000,0x00007f7fbd133000)]
        0x00007f7fe80fea50 JavaThread "Finalizer" daemon [_thread_blocked, id=159593, stack(0x00007f7fbcf33000,0x00007f7fbd033000)]
        0x00007f7fe8104610 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=159594, stack(0x00007f7fbce33000,0x00007f7fbcf33000)]
        0x00007f7fe81059b0 JavaThread "Service Thread" daemon [_thread_blocked, id=159595, stack(0x00007f7fbcd33000,0x00007f7fbce33000)]
        0x00007f7fe8106db0 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=159596, stack(0x00007f7fbcc33000,0x00007f7fbcd33000)]
        0x00007f7fe81087d0 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=159597, stack(0x00007f7fbcb33000,0x00007f7fbcc33000)]
        0x00007f7fe8109cf0 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=159598, stack(0x00007f7fbca33000,0x00007f7fbcb33000)]
        0x00007f7fe810b150 JavaThread "Sweeper thread" daemon [_thread_blocked, id=159599, stack(0x00007f7fbc933000,0x00007f7fbca33000)]
        0x00007f7fe8112c00 JavaThread "Notification Thread" daemon [_thread_blocked, id=159600, stack(0x00007f7fbc833000,0x00007f7fbc933000)]
        0x00007f7fe81163d0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=159602, stack(0x00007f7fbc631000,0x00007f7fbc731000)]
        0x00007f7f7c085db0 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=159603, stack(0x00007f7fbc4f0000,0x00007f7fbc5f0000)]

      Other Threads:
        0x00007f7fe80fa500 VMThread "VM Thread" [stack: 0x00007f7fbd135000,0x00007f7fbd235000] [id=159591]
        0x00007f7fe8114530 WatcherThread "VM Periodic Task Thread" [stack: 0x00007f7fbc733000,0x00007f7fbc833000] [id=159601]
        0x00007f7fe80592a0 WorkerThread "GC Thread#0" [stack: 0x00007f7fec92a000,0x00007f7feca2a000] [id=159586]
        0x00007f7fe806a360 ConcurrentGCThread "G1 Main Marker" [stack: 0x00007f7fec828000,0x00007f7fec928000] [id=159587]
        0x00007f7fe806b260 WorkerThread "G1 Conc#0" [stack: 0x00007f7fec726000,0x00007f7fec826000] [id=159588]
        0x00007f7fe80cc2b0 ConcurrentGCThread "G1 Refine#0" [stack: 0x00007f7fbd526000,0x00007f7fbd626000] [id=159589]
        0x00007f7fe80cd180 ConcurrentGCThread "G1 Service" [stack: 0x00007f7fbd424000,0x00007f7fbd524000] [id=159590]

      Threads with active compile tasks:

      VM state: not at safepoint (normal execution)

      VM Mutex/Monitor currently owned by a thread: None

      Heap address: 0x000000060ac00000, size: 8020 MB, Compressed Oops mode: Zero based, Oop shift amount: 3

      CDS archive(s) mapped at: [0x0000000800000000-0x0000000800baf000-0x0000000800bfe000), size 12574720, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0.
      Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824
      Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000

      GC Precious Log:
       CardTable entry size: 512
       Card Set container configuration: InlinePtr #cards 4 size 8 Array Of Cards #cards 32 size 80 Howl #buckets 8 coarsen threshold 7372 Howl Bitmap #cards 1024 size 144 coarsen threshold 921 Card regions per heap region 1 cards per card region 8192
       CPUs: 16 total, 16 available
       Memory: 32073M
       Large Page Support: Disabled
       NUMA Support: Disabled
       Compressed Oops: Enabled (Zero based)
       Heap Region Size: 4M
       Heap Min Capacity: 8M
       Heap Initial Capacity: 504M
       Heap Max Capacity: 8020M
       Pre-touch: Disabled
       Parallel Workers: 13
       Concurrent Workers: 3
       Concurrent Refinement Workers: 13
       Periodic GC: Disabled

      Heap:
       garbage-first heap total 524288K, used 4012K [0x000000060ac00000, 0x0000000800000000)
        region size 4096K, 1 young (4096K), 0 survivors (0K)
       Metaspace used 166K, committed 384K, reserved 1114112K
        class space used 10K, committed 128K, reserved 1048576K

      Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next)
      | 0|0x000000060ac00000, 0x000000060ac00000, 0x000000060b000000| 0%| F| |TAMS 0x000000060ac00000, 0x000000060ac00000| Untracked
      | 1|0x000000060b000000, 0x000000060b000000, 0x000000060b400000| 0%| F| |TAMS 0x000000060b000000, 0x000000060b000000| Untracked
      | 2|0x000000060b400000, 0x000000060b400000, 0x000000060b800000| 0%| F| |TAMS 0x000000060b400000, 0x000000060b400000| Untracked
      | 3|0x000000060b800000, 0x000000060b800000, 0x000000060bc00000| 0%| F| |TAMS 0x000000060b800000, 0x000000060b800000| Untracked
      | 4|0x000000060bc00000, 0x000000060bc00000, 0x000000060c000000| 0%| F| |TAMS 0x000000060bc00000, 0x000000060bc00000| Untracked
      | 5|0x000000060c000000, 0x000000060c000000, 0x000000060c400000| 0%| F| |TAMS 0x000000060c000000, 0x000000060c000000| Untracked
      | 6|0x000000060c400000, 0x000000060c400000, 0x000000060c800000| 0%| F| |TAMS 0x000000060c400000, 0x000000060c400000| Untracked
      | 7|0x000000060c800000, 0x000000060c800000, 0x000000060cc00000| 0%| F| |TAMS 0x000000060c800000, 0x000000060c800000| Untracked
      | 8|0x000000060cc00000, 0x000000060cc00000, 0x000000060d000000| 0%| F| |TAMS 0x000000060cc00000, 0x000000060cc00000| Untracked
      | 9|0x000000060d000000, 0x000000060d000000, 0x000000060d400000| 0%| F| |TAMS 0x000000060d000000, 0x000000060d000000| Untracked
      | 10|0x000000060d400000, 0x000000060d400000, 0x000000060d800000| 0%| F| |TAMS 0x000000060d400000, 0x000000060d400000| Untracked
      | 11|0x000000060d800000, 0x000000060d800000, 0x000000060dc00000| 0%| F| |TAMS 0x000000060d800000, 0x000000060d800000| Untracked
      | 12|0x000000060dc00000, 0x000000060dc00000, 0x000000060e000000| 0%| F| |TAMS 0x000000060dc00000, 0x000000060dc00000| Untracked
      | 13|0x000000060e000000, 0x000000060e000000, 0x000000060e400000| 0%| F| |TAMS 0x000000060e000000, 0x000000060e000000| Untracked
      | 14|0x000000060e400000, 0x000000060e400000, 0x000000060e800000| 0%| F| |TAMS 0x000000060e400000, 0x000000060e400000| Untracked
      | 15|0x000000060e800000, 0x000000060e800000, 0x000000060ec00000| 0%| F| |TAMS 0x000000060e800000, 0x000000060e800000| Untracked
      | 16|0x000000060ec00000, 0x000000060ec00000, 0x000000060f000000| 0%| F| |TAMS 0x000000060ec00000, 0x000000060ec00000| Untracked
      | 17|0x000000060f000000, 0x000000060f000000, 0x000000060f400000| 0%| F| |TAMS 0x000000060f000000, 0x000000060f000000| Untracked
      | 18|0x000000060f400000, 0x000000060f400000, 0x000000060f800000| 0%| F| |TAMS 0x000000060f400000, 0x000000060f400000| Untracked
      | 19|0x000000060f800000, 0x000000060f800000, 0x000000060fc00000| 0%| F| |TAMS 0x000000060f800000, 0x000000060f800000| Untracked
      | 20|0x000000060fc00000, 0x000000060fc00000, 0x0000000610000000| 0%| F| |TAMS 0x000000060fc00000, 0x000000060fc00000| Untracked
      | 21|0x0000000610000000, 0x0000000610000000, 0x0000000610400000| 0%| F| |TAMS 0x0000000610000000, 0x0000000610000000| Untracked
      | 22|0x0000000610400000, 0x0000000610400000, 0x0000000610800000| 0%| F| |TAMS 0x0000000610400000, 0x0000000610400000| Untracked
      | 23|0x0000000610800000, 0x0000000610800000, 0x0000000610c00000| 0%| F| |TAMS 0x0000000610800000, 0x0000000610800000| Untracked
      | 24|0x0000000610c00000, 0x0000000610c00000, 0x0000000611000000| 0%| F| |TAMS 0x0000000610c00000, 0x0000000610c00000| Untracked
      | 25|0x0000000611000000, 0x0000000611000000, 0x0000000611400000| 0%| F| |TAMS 0x0000000611000000, 0x0000000611000000| Untracked
      | 26|0x0000000611400000, 0x0000000611400000, 0x0000000611800000| 0%| F| |TAMS 0x0000000611400000, 0x0000000611400000| Untracked
      | 27|0x0000000611800000, 0x0000000611800000, 0x0000000611c00000| 0%| F| |TAMS 0x0000000611800000, 0x0000000611800000| Untracked
      | 28|0x0000000611c00000, 0x0000000611c00000, 0x0000000612000000| 0%| F| |TAMS 0x0000000611c00000, 0x0000000611c00000| Untracked
      | 29|0x0000000612000000, 0x0000000612000000, 0x0000000612400000| 0%| F| |TAMS 0x0000000612000000, 0x0000000612000000| Untracked
      | 30|0x0000000612400000, 0x0000000612400000, 0x0000000612800000| 0%| F| |TAMS 0x0000000612400000, 0x0000000612400000| Untracked
      | 31|0x0000000612800000, 0x0000000612800000, 0x0000000612c00000| 0%| F| |TAMS 0x0000000612800000, 0x0000000612800000| Untracked
      | 32|0x0000000612c00000, 0x0000000612c00000, 0x0000000613000000| 0%| F| |TAMS 0x0000000612c00000, 0x0000000612c00000| Untracked
      | 33|0x0000000613000000, 0x0000000613000000, 0x0000000613400000| 0%| F| |TAMS 0x0000000613000000, 0x0000000613000000| Untracked
      | 34|0x0000000613400000, 0x0000000613400000, 0x0000000613800000| 0%| F| |TAMS 0x0000000613400000, 0x0000000613400000| Untracked
      | 35|0x0000000613800000, 0x0000000613800000, 0x0000000613c00000| 0%| F| |TAMS 0x0000000613800000, 0x0000000613800000| Untracked
      | 36|0x0000000613c00000, 0x0000000613c00000, 0x0000000614000000| 0%| F| |TAMS 0x0000000613c00000, 0x0000000613c00000| Untracked
      | 37|0x0000000614000000, 0x0000000614000000, 0x0000000614400000| 0%| F| |TAMS 0x0000000614000000, 0x0000000614000000| Untracked
      | 38|0x0000000614400000, 0x0000000614400000, 0x0000000614800000| 0%| F| |TAMS 0x0000000614400000, 0x0000000614400000| Untracked
      | 39|0x0000000614800000, 0x0000000614800000, 0x0000000614c00000| 0%| F| |TAMS 0x0000000614800000, 0x0000000614800000| Untracked
      | 40|0x0000000614c00000, 0x0000000614c00000, 0x0000000615000000| 0%| F| |TAMS 0x0000000614c00000, 0x0000000614c00000| Untracked
      | 41|0x0000000615000000, 0x0000000615000000, 0x0000000615400000| 0%| F| |TAMS 0x0000000615000000, 0x0000000615000000| Untracked
      | 42|0x0000000615400000, 0x0000000615400000, 0x0000000615800000| 0%| F| |TAMS 0x0000000615400000, 0x0000000615400000| Untracked
      | 43|0x0000000615800000, 0x0000000615800000, 0x0000000615c00000| 0%| F| |TAMS 0x0000000615800000, 0x0000000615800000| Untracked
      | 44|0x0000000615c00000, 0x0000000615c00000, 0x0000000616000000| 0%| F| |TAMS 0x0000000615c00000, 0x0000000615c00000| Untracked
      | 45|0x0000000616000000, 0x0000000616000000, 0x0000000616400000| 0%| F| |TAMS 0x0000000616000000, 0x0000000616000000| Untracked
      | 46|0x0000000616400000, 0x0000000616400000, 0x0000000616800000| 0%| F| |TAMS 0x0000000616400000, 0x0000000616400000| Untracked
      | 47|0x0000000616800000, 0x0000000616800000, 0x0000000616c00000| 0%| F| |TAMS 0x0000000616800000, 0x0000000616800000| Untracked
      | 48|0x0000000616c00000, 0x0000000616c00000, 0x0000000617000000| 0%| F| |TAMS 0x0000000616c00000, 0x0000000616c00000| Untracked
      | 49|0x0000000617000000, 0x0000000617000000, 0x0000000617400000| 0%| F| |TAMS 0x0000000617000000, 0x0000000617000000| Untracked
      | 50|0x0000000617400000, 0x0000000617400000, 0x0000000617800000| 0%| F| |TAMS 0x0000000617400000, 0x0000000617400000| Untracked
      | 51|0x0000000617800000, 0x0000000617800000, 0x0000000617c00000| 0%| F| |TAMS 0x0000000617800000, 0x0000000617800000| Untracked
      | 52|0x0000000617c00000, 0x0000000617c00000, 0x0000000618000000| 0%| F| |TAMS 0x0000000617c00000, 0x0000000617c00000| Untracked
      | 53|0x0000000618000000, 0x0000000618000000, 0x0000000618400000| 0%| F| |TAMS 0x0000000618000000, 0x0000000618000000| Untracked
      | 54|0x0000000618400000, 0x0000000618400000, 0x0000000618800000| 0%| F| |TAMS 0x0000000618400000, 0x0000000618400000| Untracked
      | 55|0x0000000618800000, 0x0000000618800000, 0x0000000618c00000| 0%| F| |TAMS 0x0000000618800000, 0x0000000618800000| Untracked
      | 56|0x0000000618c00000, 0x0000000618c00000, 0x0000000619000000| 0%| F| |TAMS 0x0000000618c00000, 0x0000000618c00000| Untracked
      | 57|0x0000000619000000, 0x0000000619000000, 0x0000000619400000| 0%| F| |TAMS 0x0000000619000000, 0x0000000619000000| Untracked
      | 58|0x0000000619400000, 0x0000000619400000, 0x0000000619800000| 0%| F| |TAMS 0x0000000619400000, 0x0000000619400000| Untracked
      | 59|0x0000000619800000, 0x0000000619800000, 0x0000000619c00000| 0%| F| |TAMS 0x0000000619800000, 0x0000000619800000| Untracked
      | 60|0x0000000619c00000, 0x0000000619c00000, 0x000000061a000000| 0%| F| |TAMS 0x0000000619c00000, 0x0000000619c00000| Untracked
      | 61|0x000000061a000000, 0x000000061a000000, 0x000000061a400000| 0%| F| |TAMS 0x000000061a000000, 0x000000061a000000| Untracked
      | 62|0x000000061a400000, 0x000000061a400000, 0x000000061a800000| 0%| F| |TAMS 0x000000061a400000, 0x000000061a400000| Untracked
      | 63|0x000000061a800000, 0x000000061a800000, 0x000000061ac00000| 0%| F| |TAMS 0x000000061a800000, 0x000000061a800000| Untracked
      | 64|0x000000061ac00000, 0x000000061ac00000, 0x000000061b000000| 0%| F| |TAMS 0x000000061ac00000, 0x000000061ac00000| Untracked
      | 65|0x000000061b000000, 0x000000061b000000, 0x000000061b400000| 0%| F| |TAMS 0x000000061b000000, 0x000000061b000000| Untracked
      | 66|0x000000061b400000, 0x000000061b400000, 0x000000061b800000| 0%| F| |TAMS 0x000000061b400000, 0x000000061b400000| Untracked
      | 67|0x000000061b800000, 0x000000061b800000, 0x000000061bc00000| 0%| F| |TAMS 0x000000061b800000, 0x000000061b800000| Untracked
      | 68|0x000000061bc00000, 0x000000061bc00000, 0x000000061c000000| 0%| F| |TAMS 0x000000061bc00000, 0x000000061bc00000| Untracked
      | 69|0x000000061c000000, 0x000000061c000000, 0x000000061c400000| 0%| F| |TAMS 0x000000061c000000, 0x000000061c000000| Untracked
      | 70|0x000000061c400000, 0x000000061c400000, 0x000000061c800000| 0%| F| |TAMS 0x000000061c400000, 0x000000061c400000| Untracked
      | 71|0x000000061c800000, 0x000000061c800000, 0x000000061cc00000| 0%| F| |TAMS 0x000000061c800000, 0x000000061c800000| Untracked
      | 72|0x000000061cc00000, 0x000000061cc00000, 0x000000061d000000| 0%| F| |TAMS 0x000000061cc00000, 0x000000061cc00000| Untracked
      | 73|0x000000061d000000, 0x000000061d000000, 0x000000061d400000| 0%| F| |TAMS 0x000000061d000000, 0x000000061d000000| Untracked
      | 74|0x000000061d400000, 0x000000061d400000, 0x000000061d800000| 0%| F| |TAMS 0x000000061d400000, 0x000000061d400000| Untracked
      | 75|0x000000061d800000, 0x000000061d800000, 0x000000061dc00000| 0%| F| |TAMS 0x000000061d800000, 0x000000061d800000| Untracked
      | 76|0x000000061dc00000, 0x000000061dc00000, 0x000000061e000000| 0%| F| |TAMS 0x000000061dc00000, 0x000000061dc00000| Untracked
      | 77|0x000000061e000000, 0x000000061e000000, 0x000000061e400000| 0%| F| |TAMS 0x000000061e000000, 0x000000061e000000| Untracked
      | 78|0x000000061e400000, 0x000000061e400000, 0x000000061e800000| 0%| F| |TAMS 0x000000061e400000, 0x000000061e400000| Untracked
      | 79|0x000000061e800000, 0x000000061e800000, 0x000000061ec00000| 0%| F| |TAMS 0x000000061e800000, 0x000000061e800000| Untracked
      | 80|0x000000061ec00000, 0x000000061ec00000, 0x000000061f000000| 0%| F| |TAMS 0x000000061ec00000, 0x000000061ec00000| Untracked
      | 81|0x000000061f000000, 0x000000061f000000, 0x000000061f400000| 0%| F| |TAMS 0x000000061f000000, 0x000000061f000000| Untracked
      | 82|0x000000061f400000, 0x000000061f400000, 0x000000061f800000| 0%| F| |TAMS 0x000000061f400000, 0x000000061f400000| Untracked
      | 83|0x000000061f800000, 0x000000061f800000, 0x000000061fc00000| 0%| F| |TAMS 0x000000061f800000, 0x000000061f800000| Untracked
      | 84|0x000000061fc00000, 0x000000061fc00000, 0x0000000620000000| 0%| F| |TAMS 0x000000061fc00000, 0x000000061fc00000| Untracked
      | 85|0x0000000620000000, 0x0000000620000000, 0x0000000620400000| 0%| F| |TAMS 0x0000000620000000, 0x0000000620000000| Untracked
      | 86|0x0000000620400000, 0x0000000620400000, 0x0000000620800000| 0%| F| |TAMS 0x0000000620400000, 0x0000000620400000| Untracked
      | 87|0x0000000620800000, 0x0000000620800000, 0x0000000620c00000| 0%| F| |TAMS 0x0000000620800000, 0x0000000620800000| Untracked
      | 88|0x0000000620c00000, 0x0000000620c00000, 0x0000000621000000| 0%| F| |TAMS 0x0000000620c00000, 0x0000000620c00000| Untracked
      | 89|0x0000000621000000, 0x0000000621000000, 0x0000000621400000| 0%| F| |TAMS 0x0000000621000000, 0x0000000621000000| Untracked
      | 90|0x0000000621400000, 0x0000000621400000, 0x0000000621800000| 0%| F| |TAMS 0x0000000621400000, 0x0000000621400000| Untracked
      | 91|0x0000000621800000, 0x0000000621800000, 0x0000000621c00000| 0%| F| |TAMS 0x0000000621800000, 0x0000000621800000| Untracked
      | 92|0x0000000621c00000, 0x0000000621c00000, 0x0000000622000000| 0%| F| |TAMS 0x0000000621c00000, 0x0000000621c00000| Untracked
      | 93|0x0000000622000000, 0x0000000622000000, 0x0000000622400000| 0%| F| |TAMS 0x0000000622000000, 0x0000000622000000| Untracked
      | 94|0x0000000622400000, 0x0000000622400000, 0x0000000622800000| 0%| F| |TAMS 0x0000000622400000, 0x0000000622400000| Untracked
      | 95|0x0000000622800000, 0x0000000622800000, 0x0000000622c00000| 0%| F| |TAMS 0x0000000622800000, 0x0000000622800000| Untracked
      | 96|0x0000000622c00000, 0x0000000622c00000, 0x0000000623000000| 0%| F| |TAMS 0x0000000622c00000, 0x0000000622c00000| Untracked
      | 97|0x0000000623000000, 0x0000000623000000, 0x0000000623400000| 0%| F| |TAMS 0x0000000623000000, 0x0000000623000000| Untracked
      | 98|0x0000000623400000, 0x0000000623400000, 0x0000000623800000| 0%| F| |TAMS 0x0000000623400000, 0x0000000623400000| Untracked
      | 99|0x0000000623800000, 0x0000000623800000, 0x0000000623c00000| 0%| F| |TAMS 0x0000000623800000, 0x0000000623800000| Untracked
      | 100|0x0000000623c00000, 0x0000000623c00000, 0x0000000624000000| 0%| F| |TAMS 0x0000000623c00000, 0x0000000623c00000| Untracked
      | 101|0x0000000624000000, 0x0000000624000000, 0x0000000624400000| 0%| F| |TAMS 0x0000000624000000, 0x0000000624000000| Untracked
      | 102|0x0000000624400000, 0x0000000624400000, 0x0000000624800000| 0%| F| |TAMS 0x0000000624400000, 0x0000000624400000| Untracked
      | 103|0x0000000624800000, 0x0000000624800000, 0x0000000624c00000| 0%| F| |TAMS 0x0000000624800000, 0x0000000624800000| Untracked
      | 104|0x0000000624c00000, 0x0000000624c00000, 0x0000000625000000| 0%| F| |TAMS 0x0000000624c00000, 0x0000000624c00000| Untracked
      | 105|0x0000000625000000, 0x0000000625000000, 0x0000000625400000| 0%| F| |TAMS 0x0000000625000000, 0x0000000625000000| Untracked
      | 106|0x0000000625400000, 0x0000000625400000, 0x0000000625800000| 0%| F| |TAMS 0x0000000625400000, 0x0000000625400000| Untracked
      | 107|0x0000000625800000, 0x0000000625800000, 0x0000000625c00000| 0%| F| |TAMS 0x0000000625800000, 0x0000000625800000| Untracked
      | 108|0x0000000625c00000, 0x0000000625c00000, 0x0000000626000000| 0%| F| |TAMS 0x0000000625c00000, 0x0000000625c00000| Untracked
      | 109|0x0000000626000000, 0x0000000626000000, 0x0000000626400000| 0%| F| |TAMS 0x0000000626000000, 0x0000000626000000| Untracked
      | 110|0x0000000626400000, 0x0000000626400000, 0x0000000626800000| 0%| F| |TAMS 0x0000000626400000, 0x0000000626400000| Untracked
      | 111|0x0000000626800000, 0x0000000626800000, 0x0000000626c00000| 0%| F| |TAMS 0x0000000626800000, 0x0000000626800000| Untracked
      | 112|0x0000000626c00000, 0x0000000626c00000, 0x0000000627000000| 0%| F| |TAMS 0x0000000626c00000, 0x0000000626c00000| Untracked
      | 113|0x0000000627000000, 0x0000000627000000, 0x0000000627400000| 0%| F| |TAMS 0x0000000627000000, 0x0000000627000000| Untracked
      | 114|0x0000000627400000, 0x0000000627400000, 0x0000000627800000| 0%| F| |TAMS 0x0000000627400000, 0x0000000627400000| Untracked
      | 115|0x0000000627800000, 0x0000000627800000, 0x0000000627c00000| 0%| F| |TAMS 0x0000000627800000, 0x0000000627800000| Untracked
      | 116|0x0000000627c00000, 0x0000000627c00000, 0x0000000628000000| 0%| F| |TAMS 0x0000000627c00000, 0x0000000627c00000| Untracked
      | 117|0x0000000628000000, 0x0000000628000000, 0x0000000628400000| 0%| F| |TAMS 0x0000000628000000, 0x0000000628000000| Untracked
      | 118|0x0000000628400000, 0x0000000628400000, 0x0000000628800000| 0%| F| |TAMS 0x0000000628400000, 0x0000000628400000| Untracked
      | 119|0x0000000628800000, 0x0000000628800000, 0x0000000628c00000| 0%| F| |TAMS 0x0000000628800000, 0x0000000628800000| Untracked
      | 120|0x0000000628c00000, 0x0000000628c00000, 0x0000000629000000| 0%| F| |TAMS 0x0000000628c00000, 0x0000000628c00000| Untracked
      | 121|0x0000000629000000, 0x0000000629000000, 0x0000000629400000| 0%| F| |TAMS 0x0000000629000000, 0x0000000629000000| Untracked
      | 122|0x0000000629400000, 0x0000000629400000, 0x0000000629800000| 0%| F| |TAMS 0x0000000629400000, 0x0000000629400000| Untracked
      | 123|0x0000000629800000, 0x0000000629800000, 0x0000000629c00000| 0%| F| |TAMS 0x0000000629800000, 0x0000000629800000| Untracked
      | 124|0x0000000629c00000, 0x0000000629c00000, 0x000000062a000000| 0%| F| |TAMS 0x0000000629c00000, 0x0000000629c00000| Untracked
      | 125|0x000000062a000000, 0x000000062a0f5c40, 0x000000062a400000| 24%| E| |TAMS 0x000000062a000000, 0x000000062a000000| Complete
      |2003|0x00000007ff800000, 0x00000007ffb75000, 0x00000007ffc00000| 86%|OA| |TAMS 0x00000007ff800000, 0x00000007ff800000| Untracked
      |2004|0x00000007ffc00000, 0x00000007ffc76000, 0x0000000800000000| 11%|CA| |TAMS 0x00000007ffc00000, 0x00000007ffc00000| Untracked

      Card table byte_map: [0x00007f7fd0676000,0x00007f7fd1620000] _byte_map_base: 0x00007f7fcd620000

      Marking Bits (Prev, Next): (CMBitMap*) 0x00007f7fe8059d10, (CMBitMap*) 0x00007f7fe8059d50
       Prev Bits: [0x00007f7fc797c000, 0x00007f7fcf6cc000)
       Next Bits: [0x00007f7fbfc2c000, 0x00007f7fc797c000)

      Polling page: 0x00007f7ff09e5000

      Metaspace:

      Usage:
        Non-class: 156.45 KB used.
            Class: 10.15 KB used.
             Both: 166.59 KB used.

      Virtual space:
        Non-class space: 64.00 MB reserved, 256.00 KB ( <1%) committed, 1 nodes.
            Class space: 1.00 GB reserved, 128.00 KB ( <1%) committed, 1 nodes.
                   Both: 1.06 GB reserved, 384.00 KB ( <1%) committed.

      Chunk freelists:
         Non-Class: 3.98 MB
             Class: 3.74 MB
              Both: 7.72 MB

      MaxMetaspaceSize: unlimited
      CompressedClassSpaceSize: 1.00 GB
      Initial GC threshold: 21.00 MB
      Current GC threshold: 21.00 MB
      CDS: on
      MetaspaceReclaimPolicy: balanced
       - commit_granule_bytes: 65536.
       - commit_granule_words: 8192.
       - virtual_space_node_default_size: 8388608.
       - enlarge_chunks_in_place: 1.
       - new_chunks_are_fully_committed: 0.
       - uncommit_free_chunks: 1.
       - use_allocation_guard: 0.


      Internal statistics:

      num_allocs_failed_limit: 0.
      num_arena_births: 4.
      num_arena_deaths: 0.
      num_vsnodes_births: 2.
      num_vsnodes_deaths: 0.
      num_space_committed: 6.
      num_space_uncommitted: 0.
      num_chunks_returned_to_freelist: 0.
      num_chunks_taken_from_freelist: 9.
      num_chunk_merges: 0.
      num_chunk_splits: 4.
      num_chunks_enlarged: 3.
      num_inconsistent_stats: 0.

      CodeHeap 'non-profiled nmethods': size=119168Kb used=9Kb max_used=9Kb free=119158Kb
       bounds [0x00007f7fd91c0000, 0x00007f7fd9430000, 0x00007f7fe0620000]
      CodeHeap 'profiled nmethods': size=119164Kb used=44Kb max_used=44Kb free=119120Kb
       bounds [0x00007f7fd1d61000, 0x00007f7fd1fd1000, 0x00007f7fd91c0000]
      CodeHeap 'non-nmethods': size=7428Kb used=1658Kb max_used=1658Kb free=5769Kb
       bounds [0x00007f7fd1620000, 0x00007f7fd1890000, 0x00007f7fd1d61000]
       total_blobs=403 nmethods=41 adapters=276
       compilation: enabled
                    stopped_count=0, restarted_count=0
       full_count=0

      Compilation events (20 events):
      Event: 0.028 Thread 0x00007f7fe8109cf0 nmethod 26 0x00007f7fd1d69910 code [0x00007f7fd1d69ac0, 0x00007f7fd1d69c90]
      Event: 0.028 Thread 0x00007f7fe8109cf0 27 3 java.lang.String::checkIndex (10 bytes)
      Event: 0.028 Thread 0x00007f7fe8109cf0 nmethod 27 0x00007f7fd1d69d90 code [0x00007f7fd1d69f20, 0x00007f7fd1d6a050]
      Event: 0.028 Thread 0x00007f7f7c085db0 nmethod 25 0x00007f7fd1d6a110 code [0x00007f7fd1d6a2e0, 0x00007f7fd1d6a680]
      Event: 0.029 Thread 0x00007f7f7c085db0 29 3 java.lang.Math::min (11 bytes)
      Event: 0.029 Thread 0x00007f7f7c085db0 nmethod 29 0x00007f7fd1d6a810 code [0x00007f7fd1d6a9a0, 0x00007f7fd1d6aad0]
      Event: 0.029 Thread 0x00007f7f7c085db0 30 3 java.lang.StringLatin1::canEncode (13 bytes)
      Event: 0.029 Thread 0x00007f7f7c085db0 nmethod 30 0x00007f7fd1d6ab90 code [0x00007f7fd1d6ad20, 0x00007f7fd1d6ae70]
      Event: 0.029 Thread 0x00007f7fe8109cf0 31 3 java.lang.StringLatin1::indexOfChar (33 bytes)
      Event: 0.029 Thread 0x00007f7fe8109cf0 nmethod 31 0x00007f7fd1d6af10 code [0x00007f7fd1d6b0c0, 0x00007f7fd1d6b2f0]
      Event: 0.030 Thread 0x00007f7f7c085db0 32 3 java.lang.StringLatin1::hashCode (42 bytes)
      Event: 0.030 Thread 0x00007f7f7c085db0 nmethod 32 0x00007f7fd1d6b410 code [0x00007f7fd1d6b5c0, 0x00007f7fd1d6b770]
      Event: 0.030 Thread 0x00007f7fe8109cf0 33 3 java.util.concurrent.ConcurrentHashMap::spread (10 bytes)
      Event: 0.031 Thread 0x00007f7fe8109cf0 nmethod 33 0x00007f7fd1d6b890 code [0x00007f7fd1d6ba20, 0x00007f7fd1d6bb10]
      Event: 0.031 Thread 0x00007f7fe81087d0 34 4 java.lang.Object::<init> (1 bytes)
      Event: 0.031 Thread 0x00007f7fe81087d0 nmethod 34 0x00007f7fd91c0e90 code [0x00007f7fd91c1000, 0x00007f7fd91c1078]
      Event: 0.031 Thread 0x00007f7fe8109cf0 35 3 java.util.Objects::requireNonNull (14 bytes)
      Event: 0.031 Thread 0x00007f7fe8109cf0 nmethod 35 0x00007f7fd1d6bb90 code [0x00007f7fd1d6bd40, 0x00007f7fd1d6bf20]
      Event: 0.032 Thread 0x00007f7f7c085db0 38 1 java.lang.Enum::ordinal (5 bytes)
      Event: 0.032 Thread 0x00007f7f7c085db0 nmethod 38 0x00007f7fd91c1890 code [0x00007f7fd91c1a20, 0x00007f7fd91c1af0]

      GC Heap History (0 events):
      No events

      Deoptimization events (0 events):
      No events

      Classes loaded (2 events):
      Event: 0.023 Loading class jdk/internal/vm/PostVMInitHook
      Event: 0.023 Loading class jdk/internal/vm/PostVMInitHook done

      Classes unloaded (0 events):
      No events

      Classes redefined (0 events):
      No events

      Internal exceptions (0 events):
      No events

      VM Operations (0 events):
      No events

      Events (20 events):
      Event: 0.020 Protecting memory [0x00007f7fbce33000,0x00007f7fbce37000] with protection modes 0
      Event: 0.021 Thread 0x00007f7fe81059b0 Thread added: 0x00007f7fe81059b0
      Event: 0.021 Protecting memory [0x00007f7fbcd33000,0x00007f7fbcd37000] with protection modes 0
      Event: 0.021 Thread 0x00007f7fe8106db0 Thread added: 0x00007f7fe8106db0
      Event: 0.021 Protecting memory [0x00007f7fbcc33000,0x00007f7fbcc37000] with protection modes 0
      Event: 0.021 Thread 0x00007f7fe81087d0 Thread added: 0x00007f7fe81087d0
      Event: 0.021 Protecting memory [0x00007f7fbcb33000,0x00007f7fbcb37000] with protection modes 0
      Event: 0.021 Thread 0x00007f7fe8109cf0 Thread added: 0x00007f7fe8109cf0
      Event: 0.021 Protecting memory [0x00007f7fbca33000,0x00007f7fbca37000] with protection modes 0
      Event: 0.021 Thread 0x00007f7fe810b150 Thread added: 0x00007f7fe810b150
      Event: 0.021 Protecting memory [0x00007f7fbc933000,0x00007f7fbc937000] with protection modes 0
      Event: 0.023 Thread 0x00007f7fe8112c00 Thread added: 0x00007f7fe8112c00
      Event: 0.023 Protecting memory [0x00007f7fbc833000,0x00007f7fbc837000] with protection modes 0
      Event: 0.024 Thread 0x00007f7fe81163d0 Thread added: 0x00007f7fe81163d0
      Event: 0.024 Protecting memory [0x00007f7fbc631000,0x00007f7fbc635000] with protection modes 0
      Event: 0.024 Loaded shared library /home/steven/tmpjdk/jdk-18.0.1/lib/libnio.so
      Event: 0.026 Thread 0x00007f7f7c085db0 Thread added: 0x00007f7f7c085db0
      Event: 0.026 Protecting memory [0x00007f7fbc4f0000,0x00007f7fbc4f4000] with protection modes 0
      Event: 0.026 Loaded shared library /home/steven/tmpjdk/jdk-18.0.1/lib/libzip.so
      Event: 0.028 Loaded shared library /home/steven/tmpjdk/jdk-18.0.1/lib/libverify.so


      Dynamic libraries:
      60ac00000-62a400000 rw-p 00000000 00:00 0
      62a400000-7ff800000 ---p 00000000 00:00 0
      7ff800000-7ffb00000 rw-p 00000000 00:00 0
      7ffb00000-7ffb75000 rw-p 00c5d000 fd:03 18158856 /home/steven/tmpjdk/jdk-18.0.1/lib/server/classes.jsa
      7ffb75000-7ffc00000 rw-p 00000000 00:00 0
      7ffc00000-7ffc76000 rw-p 00be7000 fd:03 18158856 /home/steven/tmpjdk/jdk-18.0.1/lib/server/classes.jsa
      7ffc76000-800000000 rw-p 00000000 00:00 0
      800000000-800449000 rw-p 00001000 fd:03 18158856 /home/steven/tmpjdk/jdk-18.0.1/lib/server/classes.jsa
      800449000-800baf000 r--p 0044a000 fd:03 18158856 /home/steven/tmpjdk/jdk-18.0.1/lib/server/classes.jsa
      800baf000-800bcf000 rw-p 00001000 fd:03 18138561 /home/steven/tmp/test.jsa
      800bcf000-800bfe000 r--p 00021000 fd:03 18138561 /home/steven/tmp/test.jsa
      800bfe000-800c00000 ---p 00000000 00:00 0
      800c00000-800c10000 rw-p 00000000 00:00 0
      800c10000-800c40000 ---p 00000000 00:00 0
      800c40000-800c50000 rw-p 00000000 00:00 0
      800c50000-840c00000 ---p 00000000 00:00 0
      557de5407000-557de5408000 r-xp 00000000 fd:03 18138569 /home/steven/tmpjdk/jdk-18.0.1/bin/java
      557de5409000-557de540a000 r--p 00001000 fd:03 18138569 /home/steven/tmpjdk/jdk-18.0.1/bin/java
      557de540a000-557de540b000 rw-p 00002000 fd:03 18138569 /home/steven/tmpjdk/jdk-18.0.1/bin/java
      557de58f1000-557de5938000 rw-p 00000000 00:00 0 [heap]
      7f7f60000000-7f7f60021000 rw-p 00000000 00:00 0
      7f7f60021000-7f7f64000000 ---p 00000000 00:00 0
      7f7f64000000-7f7f64032000 rw-p 00000000 00:00 0
      7f7f64032000-7f7f68000000 ---p 00000000 00:00 0
      7f7f68000000-7f7f68021000 rw-p 00000000 00:00 0
      7f7f68021000-7f7f6c000000 ---p 00000000 00:00 0
      7f7f6c000000-7f7f6c021000 rw-p 00000000 00:00 0
      7f7f6c021000-7f7f70000000 ---p 00000000 00:00 0
      7f7f70000000-7f7f70035000 rw-p 00000000 00:00 0
      7f7f70035000-7f7f74000000 ---p 00000000 00:00 0
      7f7f74000000-7f7f74021000 rw-p 00000000 00:00 0
      7f7f74021000-7f7f78000000 ---p 00000000 00:00 0
      7f7f78000000-7f7f78021000 rw-p 00000000 00:00 0
      7f7f78021000-7f7f7c000000 ---p 00000000 00:00 0
      7f7f7c000000-7f7f7c089000 rw-p 00000000 00:00 0
      7f7f7c089000-7f7f80000000 ---p 00000000 00:00 0
      7f7f80000000-7f7f80021000 rw-p 00000000 00:00 0
      7f7f80021000-7f7f84000000 ---p 00000000 00:00 0
      7f7f86ad0000-7f7f94000000 r--p 00000000 fd:01 1048640 /usr/lib/locale/locale-archive
      7f7f94000000-7f7f94021000 rw-p 00000000 00:00 0
      7f7f94021000-7f7f98000000 ---p 00000000 00:00 0
      7f7f98000000-7f7f98021000 rw-p 00000000 00:00 0
      7f7f98021000-7f7f9c000000 ---p 00000000 00:00 0
      7f7f9c000000-7f7f9c021000 rw-p 00000000 00:00 0
      7f7f9c021000-7f7fa0000000 ---p 00000000 00:00 0
      7f7fa0000000-7f7fa0021000 rw-p 00000000 00:00 0
      7f7fa0021000-7f7fa4000000 ---p 00000000 00:00 0
      7f7fa4000000-7f7fa4030000 rw-p 00000000 00:00 0
      7f7fa4030000-7f7fa4400000 ---p 00000000 00:00 0
      7f7fa4400000-7f7fa4410000 rw-p 00000000 00:00 0
      7f7fa4410000-7f7fa8000000 ---p 00000000 00:00 0
      7f7fa8000000-7f7fa8021000 rw-p 00000000 00:00 0
      7f7fa8021000-7f7fac000000 ---p 00000000 00:00 0
      7f7fac000000-7f7fac021000 rw-p 00000000 00:00 0
      7f7fac021000-7f7fb0000000 ---p 00000000 00:00 0
      7f7fb0000000-7f7fb0021000 rw-p 00000000 00:00 0
      7f7fb0021000-7f7fb4000000 ---p 00000000 00:00 0
      7f7fb4000000-7f7fb4021000 rw-p 00000000 00:00 0
      7f7fb4021000-7f7fb8000000 ---p 00000000 00:00 0
      7f7fb8000000-7f7fb8021000 rw-p 00000000 00:00 0
      7f7fb8021000-7f7fbc000000 ---p 00000000 00:00 0
      7f7fbc105000-7f7fbc4d6000 rw-p 00000000 00:00 0
      7f7fbc4d6000-7f7fbc4e3000 r-xp 00000000 fd:03 18158847 /home/steven/tmpjdk/jdk-18.0.1/lib/libverify.so
      7f7fbc4e3000-7f7fbc4e5000 r--p 0000c000 fd:03 18158847 /home/steven/tmpjdk/jdk-18.0.1/lib/libverify.so
      7f7fbc4e5000-7f7fbc4e6000 rw-p 0000e000 fd:03 18158847 /home/steven/tmpjdk/jdk-18.0.1/lib/libverify.so
      7f7fbc4e6000-7f7fbc4ed000 r-xp 00000000 fd:03 18158848 /home/steven/tmpjdk/jdk-18.0.1/lib/libzip.so
      7f7fbc4ed000-7f7fbc4ee000 ---p 00007000 fd:03 18158848 /home/steven/tmpjdk/jdk-18.0.1/lib/libzip.so
      7f7fbc4ee000-7f7fbc4ef000 r--p 00007000 fd:03 18158848 /home/steven/tmpjdk/jdk-18.0.1/lib/libzip.so
      7f7fbc4ef000-7f7fbc4f0000 rw-p 00008000 fd:03 18158848 /home/steven/tmpjdk/jdk-18.0.1/lib/libzip.so
      7f7fbc4f0000-7f7fbc4f4000 ---p 00000000 00:00 0
      7f7fbc4f4000-7f7fbc621000 rw-p 00000000 00:00 0
      7f7fbc621000-7f7fbc62f000 r-xp 00000000 fd:03 18158839 /home/steven/tmpjdk/jdk-18.0.1/lib/libnet.so
      7f7fbc62f000-7f7fbc630000 r--p 0000d000 fd:03 18158839 /home/steven/tmpjdk/jdk-18.0.1/lib/libnet.so
      7f7fbc630000-7f7fbc631000 rw-p 0000e000 fd:03 18158839 /home/steven/tmpjdk/jdk-18.0.1/lib/libnet.so
      7f7fbc631000-7f7fbc635000 ---p 00000000 00:00 0
      7f7fbc635000-7f7fbc731000 rw-p 00000000 00:00 0
      7f7fbc731000-7f7fbc732000 ---p 00000000 00:00 0
      7f7fbc732000-7f7fbc833000 rw-p 00000000 00:00 0
      7f7fbc833000-7f7fbc837000 ---p 00000000 00:00 0
      7f7fbc837000-7f7fbc933000 rw-p 00000000 00:00 0
      7f7fbc933000-7f7fbc937000 ---p 00000000 00:00 0
      7f7fbc937000-7f7fbca33000 rw-p 00000000 00:00 0
      7f7fbca33000-7f7fbca37000 ---p 00000000 00:00 0
      7f7fbca37000-7f7fbcb33000 rw-p 00000000 00:00 0
      7f7fbcb33000-7f7fbcb37000 ---p 00000000 00:00 0
      7f7fbcb37000-7f7fbcc33000 rw-p 00000000 00:00 0
      7f7fbcc33000-7f7fbcc37000 ---p 00000000 00:00 0
      7f7fbcc37000-7f7fbcd33000 rw-p 00000000 00:00 0
      7f7fbcd33000-7f7fbcd37000 ---p 00000000 00:00 0
      7f7fbcd37000-7f7fbce33000 rw-p 00000000 00:00 0
      7f7fbce33000-7f7fbce37000 ---p 00000000 00:00 0
      7f7fbce37000-7f7fbcf33000 rw-p 00000000 00:00 0
      7f7fbcf33000-7f7fbcf37000 ---p 00000000 00:00 0
      7f7fbcf37000-7f7fbd033000 rw-p 00000000 00:00 0
      7f7fbd033000-7f7fbd037000 ---p 00000000 00:00 0
      7f7fbd037000-7f7fbd133000 rw-p 00000000 00:00 0
      7f7fbd133000-7f7fbd134000 ---p 00000000 00:00 0
      7f7fbd134000-7f7fbd235000 rw-p 00000000 00:00 0
      7f7fbd235000-7f7fbd303000 r-xp 00000000 fd:03 18158833 /home/steven/tmpjdk/jdk-18.0.1/lib/libjsvml.so
      7f7fbd303000-7f7fbd304000 r--p 000cd000 fd:03 18158833 /home/steven/tmpjdk/jdk-18.0.1/lib/libjsvml.so
      7f7fbd304000-7f7fbd305000 rw-p 000ce000 fd:03 18158833 /home/steven/tmpjdk/jdk-18.0.1/lib/libjsvml.so
      7f7fbd305000-7f7fbd422000 rw-p 00000000 00:00 0
      7f7fbd422000-7f7fbd423000 ---p 00000000 00:00 0
      7f7fbd423000-7f7fbd524000 rw-p 00000000 00:00 0
      7f7fbd524000-7f7fbd525000 ---p 00000000 00:00 0
      7f7fbd525000-7f7fc040c000 rw-p 00000000 00:00 0
      7f7fc040c000-7f7fc795c000 ---p 00000000 00:00 0
      7f7fc795c000-7f7fc815c000 rw-p 00000000 00:00 0
      7f7fc815c000-7f7fcf6ac000 ---p 00000000 00:00 0
      7f7fcf6ac000-7f7fcf7c8000 rw-p 00000000 00:00 0
      7f7fcf7c8000-7f7fd0672000 ---p 00000000 00:00 0
      7f7fd0672000-7f7fd0772000 rw-p 00000000 00:00 0
      7f7fd0772000-7f7fd161c000 ---p 00000000 00:00 0
      7f7fd161c000-7f7fd1620000 rw-p 00000000 00:00 0
      7f7fd1620000-7f7fd1890000 rwxp 00000000 00:00 0
      7f7fd1890000-7f7fd1d61000 ---p 00000000 00:00 0
      7f7fd1d61000-7f7fd1fd1000 rwxp 00000000 00:00 0
      7f7fd1fd1000-7f7fd91c0000 ---p 00000000 00:00 0
      7f7fd91c0000-7f7fd9430000 rwxp 00000000 00:00 0
      7f7fd9430000-7f7fe0620000 ---p 00000000 00:00 0
      7f7fe0620000-7f7fe8000000 r--s 00000000 fd:03 18158849 /home/steven/tmpjdk/jdk-18.0.1/lib/modules
      7f7fe8000000-7f7fe8144000 rw-p 00000000 00:00 0
      7f7fe8144000-7f7fec000000 ---p 00000000 00:00 0
      7f7fec001000-7f7fec008000 r--s 00000000 fd:01 1441798 /usr/lib64/gconv/gconv-modules.cache
      7f7fec008000-7f7fec01b000 r-xp 00000000 fd:03 18158840 /home/steven/tmpjdk/jdk-18.0.1/lib/libnio.so
      7f7fec01b000-7f7fec01c000 r--p 00012000 fd:03 18158840 /home/steven/tmpjdk/jdk-18.0.1/lib/libnio.so
      7f7fec01c000-7f7fec01d000 rw-p 00013000 fd:03 18158840 /home/steven/tmpjdk/jdk-18.0.1/lib/libnio.so
      7f7fec01d000-7f7fec724000 rw-p 00000000 00:00 0
      7f7fec724000-7f7fec725000 ---p 00000000 00:00 0
      7f7fec725000-7f7fec826000 rw-p 00000000 00:00 0
      7f7fec826000-7f7fec827000 ---p 00000000 00:00 0
      7f7fec827000-7f7fec928000 rw-p 00000000 00:00 0
      7f7fec928000-7f7fec929000 ---p 00000000 00:00 0
      7f7fec929000-7f7fecc25000 rw-p 00000000 00:00 0
      7f7fecc25000-7f7fedacf000 ---p 00000000 00:00 0
      7f7fedacf000-7f7fee824000 rw-p 00000000 00:00 0
      7f7fee824000-7f7fee908000 ---p 00000000 00:00 0
      7f7fee908000-7f7fee90d000 rw-p 00000000 00:00 0
      7f7fee90d000-7f7fee9f1000 ---p 00000000 00:00 0
      7f7fee9f1000-7f7fee9f6000 rw-p 00000000 00:00 0
      7f7fee9f6000-7f7feea00000 ---p 00000000 00:00 0
      7f7feea00000-7f7feea24000 r-xp 00000000 fd:03 18158824 /home/steven/tmpjdk/jdk-18.0.1/lib/libjava.so
      7f7feea24000-7f7feea25000 ---p 00024000 fd:03 18158824 /home/steven/tmpjdk/jdk-18.0.1/lib/libjava.so
      7f7feea25000-7f7feea26000 r--p 00024000 fd:03 18158824 /home/steven/tmpjdk/jdk-18.0.1/lib/libjava.so
      7f7feea26000-7f7feea27000 rw-p 00025000 fd:03 18158824 /home/steven/tmpjdk/jdk-18.0.1/lib/libjava.so
      7f7feea27000-7f7feea28000 rw-p 00000000 00:00 0
      7f7feea28000-7f7fef2fc000 r--s 00000000 fd:01 1184342 /var/lib/sss/mc/passwd
      7f7fef2fc000-7f7fef317000 r-xp 00000000 fd:03 18158829 /home/steven/tmpjdk/jdk-18.0.1/lib/libjimage.so
      7f7fef317000-7f7fef318000 ---p 0001b000 fd:03 18158829 /home/steven/tmpjdk/jdk-18.0.1/lib/libjimage.so
      7f7fef318000-7f7fef31a000 r--p 0001b000 fd:03 18158829 /home/steven/tmpjdk/jdk-18.0.1/lib/libjimage.so
      7f7fef31a000-7f7fef31b000 rw-p 0001d000 fd:03 18158829 /home/steven/tmpjdk/jdk-18.0.1/lib/libjimage.so
      7f7fef31b000-7f7fef31f000 ---p 00000000 00:00 0
      7f7fef31f000-7f7fef41b000 rw-p 00000000 00:00 0
      7f7fef41b000-7f7fef42a000 r--p 00000000 fd:01 1059222 /usr/lib64/libm.so.6
      7f7fef42a000-7f7fef49b000 r-xp 0000f000 fd:01 1059222 /usr/lib64/libm.so.6
      7f7fef49b000-7f7fef4f5000 r--p 00080000 fd:01 1059222 /usr/lib64/libm.so.6
      7f7fef4f5000-7f7fef4f6000 r--p 000d9000 fd:01 1059222 /usr/lib64/libm.so.6
      7f7fef4f6000-7f7fef4f7000 rw-p 000da000 fd:01 1059222 /usr/lib64/libm.so.6
      7f7fef4f7000-7f7fef4f8000 r--p 00000000 fd:01 1059229 /usr/lib64/librt.so.1
      7f7fef4f8000-7f7fef4f9000 r-xp 00001000 fd:01 1059229 /usr/lib64/librt.so.1
      7f7fef4f9000-7f7fef4fa000 r--p 00002000 fd:01 1059229 /usr/lib64/librt.so.1
      7f7fef4fa000-7f7fef4fb000 r--p 00002000 fd:01 1059229 /usr/lib64/librt.so.1
      7f7fef4fb000-7f7fef4fc000 rw-p 00000000 00:00 0
      7f7fef4fc000-7f7ff0641000 r-xp 00000000 fd:03 18158859 /home/steven/tmpjdk/jdk-18.0.1/lib/server/libjvm.so
      7f7ff0641000-7f7ff0642000 ---p 01145000 fd:03 18158859 /home/steven/tmpjdk/jdk-18.0.1/lib/server/libjvm.so
      7f7ff0642000-7f7ff0700000 r--p 01145000 fd:03 18158859 /home/steven/tmpjdk/jdk-18.0.1/lib/server/libjvm.so
      7f7ff0700000-7f7ff0733000 rw-p 01203000 fd:03 18158859 /home/steven/tmpjdk/jdk-18.0.1/lib/server/libjvm.so
      7f7ff0733000-7f7ff0790000 rw-p 00000000 00:00 0
      7f7ff0790000-7f7ff07bc000 r--p 00000000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff07bc000-7f7ff0932000 r-xp 0002c000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff0932000-7f7ff0986000 r--p 001a2000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff0986000-7f7ff0987000 ---p 001f6000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff0987000-7f7ff098a000 r--p 001f6000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff098a000-7f7ff098d000 rw-p 001f9000 fd:01 1059219 /usr/lib64/libc.so.6
      7f7ff098d000-7f7ff099a000 rw-p 00000000 00:00 0
      7f7ff099a000-7f7ff099b000 r--p 00000000 fd:01 1059221 /usr/lib64/libdl.so.2
      7f7ff099b000-7f7ff099c000 r-xp 00001000 fd:01 1059221 /usr/lib64/libdl.so.2
      7f7ff099c000-7f7ff099d000 r--p 00002000 fd:01 1059221 /usr/lib64/libdl.so.2
      7f7ff099d000-7f7ff099e000 r--p 00002000 fd:01 1059221 /usr/lib64/libdl.so.2
      7f7ff099e000-7f7ff099f000 rw-p 00000000 00:00 0
      7f7ff099f000-7f7ff09a0000 r--p 00000000 fd:01 1059227 /usr/lib64/libpthread.so.0
      7f7ff09a0000-7f7ff09a1000 r-xp 00001000 fd:01 1059227 /usr/lib64/libpthread.so.0
      7f7ff09a1000-7f7ff09a2000 r--p 00002000 fd:01 1059227 /usr/lib64/libpthread.so.0
      7f7ff09a2000-7f7ff09a3000 r--p 00002000 fd:01 1059227 /usr/lib64/libpthread.so.0
      7f7ff09a3000-7f7ff09a4000 rw-p 00000000 00:00 0
      7f7ff09a4000-7f7ff09b2000 r-xp 00000000 fd:03 18158830 /home/steven/tmpjdk/jdk-18.0.1/lib/libjli.so
      7f7ff09b2000-7f7ff09b3000 ---p 0000e000 fd:03 18158830 /home/steven/tmpjdk/jdk-18.0.1/lib/libjli.so
      7f7ff09b3000-7f7ff09b4000 r--p 0000e000 fd:03 18158830 /home/steven/tmpjdk/jdk-18.0.1/lib/libjli.so
      7f7ff09b4000-7f7ff09b5000 rw-p 0000f000 fd:03 18158830 /home/steven/tmpjdk/jdk-18.0.1/lib/libjli.so
      7f7ff09b5000-7f7ff09b8000 r--p 00000000 fd:01 1049257 /usr/lib64/libz.so.1.2.11
      7f7ff09b8000-7f7ff09c6000 r-xp 00003000 fd:01 1049257 /usr/lib64/libz.so.1.2.11
      7f7ff09c6000-7f7ff09cc000 r--p 00011000 fd:01 1049257 /usr/lib64/libz.so.1.2.11
      7f7ff09cc000-7f7ff09cd000 ---p 00017000 fd:01 1049257 /usr/lib64/libz.so.1.2.11
      7f7ff09cd000-7f7ff09ce000 r--p 00017000 fd:01 1049257 /usr/lib64/libz.so.1.2.11
      7f7ff09ce000-7f7ff09cf000 rw-p 00000000 00:00 0
      7f7ff09d0000-7f7ff09d8000 rw-s 00000000 00:23 228348 /tmp/hsperfdata_steven/159584
      7f7ff09d8000-7f7ff09da000 r--p 00000000 fd:01 1052933 /usr/lib64/libnss_sss.so.2
      7f7ff09da000-7f7ff09e1000 r-xp 00002000 fd:01 1052933 /usr/lib64/libnss_sss.so.2
      7f7ff09e1000-7f7ff09e3000 r--p 00009000 fd:01 1052933 /usr/lib64/libnss_sss.so.2
      7f7ff09e3000-7f7ff09e4000 r--p 0000a000 fd:01 1052933 /usr/lib64/libnss_sss.so.2
      7f7ff09e4000-7f7ff09e5000 rw-p 0000b000 fd:01 1052933 /usr/lib64/libnss_sss.so.2
      7f7ff09e5000-7f7ff09e6000 ---p 00000000 00:00 0
      7f7ff09e6000-7f7ff09e7000 r--p 00000000 00:00 0
      7f7ff09e7000-7f7ff09e9000 rw-p 00000000 00:00 0
      7f7ff09e9000-7f7ff09eb000 r--p 00000000 fd:01 1059192 /usr/lib64/ld-linux-x86-64.so.2
      7f7ff09eb000-7f7ff0a11000 r-xp 00002000 fd:01 1059192 /usr/lib64/ld-linux-x86-64.so.2
      7f7ff0a11000-7f7ff0a1c000 r--p 00028000 fd:01 1059192 /usr/lib64/ld-linux-x86-64.so.2
      7f7ff0a1c000-7f7ff0a1d000 ---p 00000000 00:00 0
      7f7ff0a1d000-7f7ff0a1f000 r--p 00033000 fd:01 1059192 /usr/lib64/ld-linux-x86-64.so.2
      7f7ff0a1f000-7f7ff0a21000 rw-p 00035000 fd:01 1059192 /usr/lib64/ld-linux-x86-64.so.2
      7ffc3b0a2000-7ffc3b0c4000 rw-p 00000000 00:00 0 [stack]
      7ffc3b1da000-7ffc3b1de000 r--p 00000000 00:00 0 [vvar]
      7ffc3b1de000-7ffc3b1e0000 r-xp 00000000 00:00 0 [vdso]
      ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]


      VM Arguments:
      jvm_args: -XX:SharedArchiveFile=test.jsa
      java_command: JsaCrash
      java_class_path (initial): junit-4.13.2.jar:jsacrash.jar
      Launcher Type: SUN_STANDARD

      [Global flags]
           intx CICompilerCount = 12 {product} {ergonomic}
           uint ConcGCThreads = 3 {product} {ergonomic}
           uint G1ConcRefinementThreads = 13 {product} {ergonomic}
         size_t G1HeapRegionSize = 4194304 {product} {ergonomic}
          uintx GCDrainStackTargetSize = 64 {product} {ergonomic}
         size_t InitialHeapSize = 528482304 {product} {ergonomic}
         size_t MarkStackSize = 4194304 {product} {ergonomic}
         size_t MaxHeapSize = 8409579520 {product} {ergonomic}
         size_t MaxNewSize = 5045747712 {product} {ergonomic}
         size_t MinHeapDeltaBytes = 4194304 {product} {ergonomic}
         size_t MinHeapSize = 8388608 {product} {ergonomic}
          uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic}
          uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
          uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic}
          uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic}
           bool SegmentedCodeCache = true {product} {ergonomic}
          ccstr SharedArchiveFile = test.jsa {product} {command line}
         size_t SoftMaxHeapSize = 8409579520 {manageable} {ergonomic}
           bool UseCompressedClassPointers = true {product lp64_product} {ergonomic}
           bool UseCompressedOops = true {product lp64_product} {ergonomic}
           bool UseG1GC = true {product} {ergonomic}

      Logging:
      Log output configuration:
       #0: stdout all=warning uptime,level,tags foldmultilines=false
       #1: stderr all=off uptime,level,tags foldmultilines=false

      Environment Variables:
      PATH=/home/steven/bin:/home/steven/.m2/apache-maven/bin:/usr/local/sbin:/usr/local/bin:/home/steven/bin:/home/steven/.m2/apache-maven/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/home/steven/bin:/usr/local/sbin:/usr/sbin:/home/steven/code/wspl-tools/bin:/home/steven/ws-code/wspl-tools/bin:/home/steven/go/bin:/bin
      SHELL=/bin/zsh
      DISPLAY=:0.0
      LANG=en_US.utf8

      Signal Handlers:
         SIGSEGV: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
          SIGBUS: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
          SIGFPE: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGPIPE: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGXFSZ: javaSignalHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
          SIGILL: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGUSR2: SR_handler in libjvm.so, mask=00000000000000000000000000000000, flags=SA_RESTART|SA_SIGINFO
          SIGHUP: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
          SIGINT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGTERM: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGQUIT: UserHandler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO
         SIGTRAP: crash_handler in libjvm.so, mask=11100100010111111101111111111110, flags=SA_RESTART|SA_SIGINFO


      --------------- S Y S T E M ---------------

      OS:
      Fedora release 35 (Thirty Five)
      uname: Linux 5.17.4-200.fc35.x86_64 #1 SMP PREEMPT Wed Apr 20 15:37:53 UTC 2022 x86_64
      OS uptime: 0 days 8:27 hours
      libc: glibc 2.34 NPTL 2.34
      rlimit (soft/hard): STACK 8192k/infinity , CORE infinity/infinity , NPROC 127862/127862 , NOFILE 1048576/1048576 , AS infinity/infinity , CPU infinity/infinity , DATA infinity/infinity , FSIZE infinity/infinity , MEMLOCK 16384k/16384k
      load average: 0.59 0.64 1.12

      /proc/meminfo:
      MemTotal: 32842852 kB
      MemFree: 4838076 kB
      MemAvailable: 23461452 kB
      Buffers: 569748 kB
      Cached: 18304124 kB
      SwapCached: 196 kB
      Active: 8213780 kB
      Inactive: 17406456 kB
      Active(anon): 223812 kB
      Inactive(anon): 7425508 kB
      Active(file): 7989968 kB
      Inactive(file): 9980948 kB
      Unevictable: 128 kB
      Mlocked: 128 kB
      SwapTotal: 25165816 kB
      SwapFree: 25141240 kB
      Dirty: 112 kB
      Writeback: 296 kB
      AnonPages: 6746392 kB
      Mapped: 1584116 kB
      Shmem: 902956 kB
      KReclaimable: 1198576 kB
      Slab: 1605684 kB
      SReclaimable: 1198576 kB
      SUnreclaim: 407108 kB
      KernelStack: 31720 kB
      PageTables: 69596 kB
      NFS_Unstable: 0 kB
      Bounce: 0 kB
      WritebackTmp: 0 kB
      CommitLimit: 41587240 kB
      Committed_AS: 16105664 kB
      VmallocTotal: 34359738367 kB
      VmallocUsed: 313968 kB
      VmallocChunk: 0 kB
      Percpu: 45056 kB
      HardwareCorrupted: 0 kB
      AnonHugePages: 0 kB
      ShmemHugePages: 0 kB
      ShmemPmdMapped: 0 kB
      FileHugePages: 0 kB
      FilePmdMapped: 0 kB
      CmaTotal: 0 kB
      CmaFree: 0 kB
      HugePages_Total: 0
      HugePages_Free: 0
      HugePages_Rsvd: 0
      HugePages_Surp: 0
      Hugepagesize: 2048 kB
      Hugetlb: 0 kB
      DirectMap4k: 2770868 kB
      DirectMap2M: 29646848 kB
      DirectMap1G: 1048576 kB

      /sys/kernel/mm/transparent_hugepage/enabled: always [madvise] never
      /sys/kernel/mm/transparent_hugepage/defrag (defrag/compaction efforts parameter): always defer defer+madvise [madvise] never

      Process Memory:
      Virtual Size: 11598576K (peak: 11598576K)
      Resident Set Size: 40292K (peak: 40292K) (anon: 14780K, file: 25480K, shmem: 32K)
      Swapped out: 0K
      C-Heap outstanding allocations: 2454K

      /proc/sys/kernel/threads-max (system-wide limit on the number of threads): 255725
      /proc/sys/vm/max_map_count (maximum number of memory map areas a process may have): 65530
      /proc/sys/kernel/pid_max (system-wide limit on number of process identifiers): 4194304

      container (cgroup) information:
      container_type: cgroupv2
      cpu_cpuset_cpus: not supported
      cpu_memory_nodes: not supported
      active_processor_count: 16
      cpu_quota: not supported
      cpu_period: not supported
      cpu_shares: not supported
      memory_limit_in_bytes: unlimited
      memory_and_swap_limit_in_bytes: unlimited
      memory_soft_limit_in_bytes: unlimited
      memory_usage_in_bytes: 18015866880
      memory_max_usage_in_bytes: not supported
      maximum number of tasks: unlimited
      current number of tasks: 1405

      Steal ticks since vm start: 0
      Steal ticks percentage since vm start: 0.000

      CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 113 stepping 0 microcode 0x8701021, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt
      CPU Model and flags from /proc/cpuinfo:
      model name : AMD Ryzen 7 3700X 8-Core Processor
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sme sev sev_es

      Online cpus: 0-15
      Offline cpus: 16-31
      BIOS frequency limitation: 3600000
      Frequency switch latency (ns): 0
      Available cpu frequencies: 3600000 2800000 2200000
      Current governor: schedutil
      Core performance/turbo boost: 1

      Memory: 4k page, physical 32842852k(4838076k free), swap 25165816k(25141240k free)
      Page Sizes: 4k

      vm_info: OpenJDK 64-Bit Server VM (18.0.1+10-24) for linux-amd64 JRE (18.0.1+10-24), built on Mar 9 2022 22:31:43 by "mach5one" with gcc 10.3.0

      END.


      ---------- BEGIN SOURCE ----------
      import java.io.IOException;
      import java.io.UncheckedIOException;
      import java.net.URL;
      import java.net.URLClassLoader;
      import java.nio.file.Path;
      import java.util.ArrayList;
      import java.util.HashMap;
      import java.util.LinkedHashMap;
      import java.util.List;
      import java.util.Map;
      import java.util.Optional;
      import java.util.concurrent.CompletableFuture;
      import java.util.concurrent.ExecutionException;
      import java.util.concurrent.Future;
      import java.util.concurrent.TimeUnit;
      import java.util.concurrent.TimeoutException;
      import java.util.function.Consumer;
      import java.util.function.Supplier;

      import org.junit.rules.MethodRule;
      import org.junit.rules.TestRule;
      import org.junit.runner.Description;
      import org.junit.runners.model.FrameworkMethod;
      import org.junit.runners.model.Statement;

      import static java.util.concurrent.CompletableFuture.completedFuture;

      public class JsaCrash implements TestRule {
          public static final String TEST_CASE_CONTEXT = "Test Case";

          private final Map<String, Future<Object>> contexts;

          private final CompletableFuture<Void> contextsStart = new CompletableFuture<>();
          private final CompletableFuture<Void> shutdownStart;
          private final Map<String, CompletableFuture<Void>> shutdownEnd;

          private final List<? extends TestRule> innerRules;

          JsaCrash(final Object testCase,
                  final Map<String, Supplier<CompletableFuture<Object>>> contextSuppliers,
                  final List<? extends TestRule> innerRules,
                  final CompletableFuture<Void> shutdownStart,
                  final Map<String, CompletableFuture<Void>> shutdownEnd)
          {
              this.innerRules = innerRules;
              this.shutdownStart = shutdownStart;
              this.shutdownEnd = shutdownEnd;
              final var myContexts = new HashMap<String, Future<Object>>();
              contextSuppliers.forEach((name, supplier) -> {
                  myContexts.put(name, contextsStart.thenCompose(x -> start(name, supplier)));
              });
              this.contexts = Map.copyOf(myContexts);
          }

          public static void main(final String... args) throws Throwable {
              JsaCrash.builder()
                      .launch("test").as(TestConfiguration.class)
                      .build()
                      .apply(new Statement() {
                          @Override
                          public void evaluate() throws Throwable {
                              System.out.println("statement"); // NOPMD
                          }
                      }, Description.EMPTY)
                      .evaluate();
              System.out.println("done!"); // NOPMD
          }

          public static class TestConfiguration {
          }

          @Override
          public Statement apply(final Statement base, final Description description) {
              Statement stmt = new Statement() {
                  @Override
                  public void evaluate() throws Throwable {
                      try {
                          start();
                          base.evaluate();
                      } finally {
                          stop();
                      }
                  }
              };
              for (final TestRule r : innerRules) {
                  stmt = r.apply(stmt, description);
              }
              return stmt;
          }

          protected void start() throws Throwable {
              contextsStart.complete(null);
              contexts.keySet()
                  .forEach(this::context);
          }

          protected void stop() {
              shutdownStart.complete(null);
              try {
                  CompletableFuture.allOf(shutdownEnd.values().toArray(CompletableFuture<?>[]::new)).get(30, TimeUnit.SECONDS);
              } catch (final InterruptedException e1) {
              } catch (final ExecutionException e1) {
                  shutdownEnd.forEach((ctxName, cf) -> {
                      cf.whenComplete((x, e) -> {
                          if (e != null) {
                          }
                      });
                  });
              } catch (final TimeoutException e1) {
              }
          }

          private CompletableFuture<Object> start(final String name, final Supplier<CompletableFuture<Object>> starter) {
              return starter.get();
          }

          public Object context(final String ctxName) {
              try {
                  return Optional.ofNullable(contexts.get(ctxName))
                          .orElse(null)
                          .get();
              } catch (final InterruptedException e) {
                  Thread.currentThread().interrupt();
                  return null;
              } catch (final ExecutionException e) {
                  throw new RuntimeException(e);
              }
          }

          public MethodRule injectRule() {
              return new MethodRule() {
                  @Override
                  public Statement apply(final Statement base, final FrameworkMethod method, final Object target) {
                      return new Statement() {
                          @Override
                          public void evaluate() throws Throwable {
                              base.evaluate();
                          }
                      };
                  }
              };
          }

          public static JsaCrash.Builder builder() {
              return new Builder();
          }

          public static final class Builder {
              private final Map<String, Supplier<CompletableFuture<Object>>> contextSuppliers = new LinkedHashMap<>();
              private final Map<String, Object> baseProperties = new HashMap<>();
              private final List<TestRule> innerRules = new ArrayList<>();
              private final CompletableFuture<Void> shutdownStart = new CompletableFuture<>();
              private final Map<String, CompletableFuture<Void>> shutdownEnd = new LinkedHashMap<>();
              private JsaCrash builtRule;

              public Builder() {
              }

              public ContextBuilder launch(final String ctxName) {
                  return new ContextBuilder(ctxName);
              }

              Class<?>[] featureConfiguration(final ClassLoader cl) {
                  return new Class<?>[0];
              }

              Builder addContext(final ContextBuilder ctx, final ResolvedService service) {
                  URLClassLoader cl;
                  try {
                      cl = new URLClassLoader(extractAndCacheClasspath(service.tarball()).toArray(URL[]::new));
                  } catch (final IOException e) {
                      throw new UncheckedIOException(e);
                  }
                  return addContext(ctx, () -> {
                      final var myProps = new HashMap<>(ctx.properties);
                      try {
                          final String mainClassName = service.spec().mainClass()
                                  .orElse("main");
                          final var mainClass = Class.forName(mainClassName, true, cl);
                          return null;
                      } catch (final ReflectiveOperationException e) {
                          throw new RuntimeException("Context '" + ctx.ctxName + "' failed startup", e);
                      }
                  }, t -> t.setContextClassLoader(cl));
              }

              static List<URL> extractAndCacheClasspath(final Path tarball) throws IOException {
                  final var results = new ArrayList<URL>();
                  return results;
              }

              Builder addContext(final ContextBuilder ctx, final Class<?> configurationClass) {
                  return addContext(ctx, () -> {return null;}, t -> {});
              }

              private Builder addContext(final ContextBuilder ctx, final Supplier<Object> runner, final Consumer<Thread> threadCustomizer) {
                  final var shutdown = new CompletableFuture<Void>();
                  shutdownEnd.put(ctx.ctxName, shutdown);
                  contextSuppliers.put(ctx.ctxName, () -> {
                      final var startup = new CompletableFuture<Object>();
                      final var thread = new Thread(() -> {
                          final Object app;
                          try {
                              app = runner.get();
                              startup.complete(app);
                          } catch (final Exception e) {
                              e.addSuppressed(new Throwable("Failing context is: " + ctx.ctxName));
                              startup.completeExceptionally(e);
                              shutdown.completeExceptionally(e);
                              return;
                          }
                          try {
                              shutdownStart.get();
                          } catch (final InterruptedException e) {
                              Thread.currentThread().interrupt();
                          } catch (final ExecutionException e) {
                          } finally {
                              shutdown.complete(null);
                          }
                      }, "main:" + ctx.ctxName);
                      threadCustomizer.accept(thread);
                      thread.start();
                      return startup;
                  });
                  return this;
              }

              public JsaCrash build(final Object testCase) {
                  contextSuppliers.put(TEST_CASE_CONTEXT, () -> completedFuture(startTestCaseCtx()));
                  builtRule = new JsaCrash(testCase, contextSuppliers, innerRules, shutdownStart, shutdownEnd);
                  return builtRule;
              }

              private Object startTestCaseCtx() {
                  return null;
              }

              public JsaCrash build() {
                  return build(new Object());
              }

              public class ContextBuilder {
                  private final String ctxName;
                  private final Map<String, Object> properties = new HashMap<>(baseProperties);

                  ContextBuilder(final String ctxName) {
                      this.ctxName = ctxName;
                  }
                  public Builder as(final Class<?> configurationClass) {
                      return addContext(this, configurationClass);
                  }

              }
          }

          public interface ServiceSpec {
              default String groupId() {
                  return "my.service";
              }
              String artifactId();
              String version();
              Optional<String> mainClass();

          }

          public interface ResolvedService {
              ServiceSpec spec();
              Path tarball();

              static ResolvedService of(final ServiceSpec spec, final Path tarball) {
                  return new ResolvedService() {
                      @Override
                      public Path tarball() {
                          return tarball;
                      }

                      @Override
                      public ServiceSpec spec() {
                          return spec;
                      }
                  };
              }
          }

          public static ServiceSpec service(final String artifactId, final String version) {
              return new ServiceSpec() {
                  @Override
                  public String version() {
                      return version;
                  }

                  @Override
                  public Optional<String> mainClass() {
                      return Optional.empty();
                  }

                  @Override
                  public String artifactId() {
                      return artifactId;
                  }
              };
          }
      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      This bug prevents us from using CDS.

      FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

              Assignee:
              ccheung Calvin Cheung
              Reporter:
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: