Skip to content
This repository has been archived by the owner on Jun 24, 2021. It is now read-only.

Java 10 + Monocle = JVM Crash (TestFX test suite) #66

Closed
brcolow opened this issue Apr 13, 2018 · 61 comments
Closed

Java 10 + Monocle = JVM Crash (TestFX test suite) #66

brcolow opened this issue Apr 13, 2018 · 61 comments
Labels
bug Something isn't working

Comments

@brcolow
Copy link
Contributor

brcolow commented Apr 13, 2018

After adding a Java 10 build to our (TestFX) appveyor configuration, I am seeing a crash (every time at the same place):

https://ci.appveyor.com/project/testfx/testfx/build/master%201046/job/3pl22fioi0ut9juc#L492

It is triggered by this test.

I believe it is crashing in modules/javafx.graphics/src/main/native-font/directwrite.cpp in the JNIEXPORT jlong JNICALL OS_NATIVE(CreateBitmap) method. This is somewhat strange because that file hasn't been modified since the javafx-font and javafx-font-native modules were open sourced (as RT-31139) so figuring out why this would precipitate a crash now in Java 10 is probably non-trivial.

Here is the crash dump:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fffe2c74e80, pid=3000, tid=600
#
# JRE version: Java(TM) SE Runtime Environment (10.0+46) (build 10+46)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10+46, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# C  [javafx_font.dll+0x4e80]
#
# Core dump will be written. Default location: C:\projects\testfx\subprojects\testfx-core\hs_err_pid3000.mdmp
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
---------------  S U M M A R Y ------------
Command Line: -Dorg.gradle.native=false -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant -ea -Djava.awt.headless=true -Dtestfx.robot=glass -Dtestfx.headless=true -Dprism.order=sw -Dprism.text=t2k worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 1'
Host: Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz, 2 cores, 2G,  Windows Server 2012 R2 , 64 bit Build 9600 (6.3.9600.17415)
Time: Fri Apr 13 02:07:48 2018 Coordinated Universal Time elapsed time: 5 seconds (0d 0h 0m 5s)
---------------  T H R E A D  ---------------
Current thread (0x000000405f666800):  JavaThread "QuantumRenderer-0" daemon [_thread_in_native, id=600, stack(0x0000004061600000,0x0000004061700000)]
Stack: [0x0000004061600000,0x0000004061700000],  sp=0x00000040616fc9c0,  free space=1010k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [javafx_font.dll+0x4e80]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.javafx.font.directwrite.OS.CreateBitmap(JIIII)J+0 javafx.graphics@10
j  com.sun.javafx.font.directwrite.IWICImagingFactory.CreateBitmap(IIII)Lcom/sun/javafx/font/directwrite/IWICBitmap;+9 javafx.graphics@10
j  com.sun.javafx.font.directwrite.DWGlyph.createBitmap(II)Lcom/sun/javafx/font/directwrite/IWICBitmap;+10 javafx.graphics@10
j  com.sun.javafx.font.directwrite.DWGlyph.getCachedBitmap()Lcom/sun/javafx/font/directwrite/IWICBitmap;+13 javafx.graphics@10
j  com.sun.javafx.font.directwrite.DWGlyph.getD2DMask(FFZ)[B+117 javafx.graphics@10
j  com.sun.javafx.font.directwrite.DWGlyph.getPixelData(I)[B+94 javafx.graphics@10
j  com.sun.prism.sw.SWGraphics.drawGlyph(Lcom/sun/javafx/font/FontStrike;Lcom/sun/javafx/scene/text/GlyphList;ILcom/sun/javafx/geom/transform/BaseTransform;ZFF)V+85 javafx.graphics@10
j  com.sun.prism.sw.SWGraphics.drawString(Lcom/sun/javafx/scene/text/GlyphList;Lcom/sun/javafx/font/FontStrike;FFLcom/sun/prism/paint/Color;II)V+352 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGText.renderText(Lcom/sun/prism/Graphics;Lcom/sun/javafx/font/FontStrike;Lcom/sun/javafx/geom/BaseBounds;Lcom/sun/prism/paint/Color;I)V+198 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGText.renderContent2D(Lcom/sun/prism/Graphics;Z)V+238 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGShape.renderContent(Lcom/sun/prism/Graphics;)V+454 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.renderForClip(Lcom/sun/prism/Graphics;)V+17 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.renderRectClip(Lcom/sun/prism/Graphics;Lcom/sun/javafx/sg/prism/NGRectangle;)V+106 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.renderClip(Lcom/sun/prism/Graphics;)V+83 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+285 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/sg/prism/NGNode;Lcom/sun/javafx/sg/prism/NodeEffectInput$RenderType;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;)Lcom/sun/scenario/effect/ImageData;+103 javafx.graphics@10
j  com.sun.javafx.sg.prism.NodeEffectInput.filter(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Ljava/lang/Object;Lcom/sun/scenario/effect/Effect;)Lcom/sun/scenario/effect/ImageData;+163 javafx.graphics@10
j  com.sun.scenario.effect.FilterEffect.filter(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Ljava/lang/Object;Lcom/sun/scenario/effect/Effect;)Lcom/sun/scenario/effect/ImageData;+111 javafx.graphics@10
j  com.sun.scenario.effect.Offset.filter(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Ljava/lang/Object;Lcom/sun/scenario/effect/Effect;)Lcom/sun/scenario/effect/ImageData;+35 javafx.graphics@10
j  com.sun.scenario.effect.Merge.filter(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Ljava/lang/Object;Lcom/sun/scenario/effect/Effect;)Lcom/sun/scenario/effect/ImageData;+27 javafx.graphics@10
j  com.sun.scenario.effect.DelegateEffect.filter(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Ljava/lang/Object;Lcom/sun/scenario/effect/Effect;)Lcom/sun/scenario/effect/ImageData;+11 javafx.graphics@10
j  com.sun.scenario.effect.impl.prism.PrEffectHelper.render(Lcom/sun/scenario/effect/Effect;Lcom/sun/prism/Graphics;FFLcom/sun/scenario/effect/Effect;)V+511 javafx.graphics@10
j  com.sun.javafx.sg.prism.EffectFilter.render(Lcom/sun/prism/Graphics;)V+13 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.renderEffect(Lcom/sun/prism/Graphics;)V+5 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+319 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGGroup.renderContent(Lcom/sun/prism/Graphics;)V+151 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGRegion.renderContent(Lcom/sun/prism/Graphics;)V+111 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.doRender(Lcom/sun/prism/Graphics;)V+330 javafx.graphics@10
j  com.sun.javafx.sg.prism.NGNode.render(Lcom/sun/prism/Graphics;)V+34 javafx.graphics@10
j  com.sun.javafx.tk.quantum.ViewPainter.doPaint(Lcom/sun/prism/Graphics;Lcom/sun/javafx/sg/prism/NodePath;)V+201 javafx.graphics@10
j  com.sun.javafx.tk.quantum.ViewPainter.paintImpl(Lcom/sun/prism/Graphics;)V+961 javafx.graphics@10
j  com.sun.javafx.tk.quantum.UploadingPainter.run()V+741 javafx.graphics@10
j  java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4 java.base@10
j  java.util.concurrent.FutureTask.runAndReset()Z+44 java.base@10
j  com.sun.javafx.tk.RenderJob.run()V+1 javafx.graphics@10
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+92 java.base@10
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5 java.base@10
j  com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run()V+8 javafx.graphics@10
j  java.lang.Thread.run()V+11 java.base@10
v  ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x00007ffff6ca6878
Register to memory mapping:
RIP=0x00007fffe2c74e80 javafx_font.dll
RAX=0x0000000000000001 is an unknown value
RBX=0x0000000000000000 is an unknown value
RCX=0x000000405ec5a2f0 is an unknown value
RDX=0x0000000000000100 is an unknown value
RSP=0x00000040616fc9c0 is pointing into the stack for thread: 0x000000405f666800
RBP=0x00000040616fca10 is pointing into the stack for thread: 0x000000405f666800
RSI=0x0000000000000000 is an unknown value
RDI=0x0000000000000100 is an unknown value
R8 =0x0000000000000100 is an unknown value
R9 =0x00000040616fc9f8 is pointing into the stack for thread: 0x000000405f666800
R10=0x00007ffff6ca67f0 is an unknown value
R11=0x000000405ec5a2f0 is an unknown value
R12=0x0000000000000000 is an unknown value
R13={method} {0x0000004061c9bab8} 'CreateBitmap' '(JIIII)J' in 'com/sun/javafx/font/directwrite/OS'
R14=0x00000040616fcb00 is pointing into the stack for thread: 0x000000405f666800
R15=0x000000405f666800 is a thread
Registers:
RAX=0x0000000000000001, RBX=0x0000000000000000, RCX=0x000000405ec5a2f0, RDX=0x0000000000000100
RSP=0x00000040616fc9c0, RBP=0x00000040616fca10, RSI=0x0000000000000000, RDI=0x0000000000000100
R8 =0x0000000000000100, R9 =0x00000040616fc9f8, R10=0x00007ffff6ca67f0, R11=0x000000405ec5a2f0
R12=0x0000000000000000, R13=0x0000004061c9bab0, R14=0x00000040616fcb00, R15=0x000000405f666800
RIP=0x00007fffe2c74e80, EFLAGS=0x0000000000010206
Top of Stack: (sp=0x00000040616fc9c0)
0x00000040616fc9c0:   000000405e7e6d20 00000000000003d8
0x00000040616fc9d0:   0000004061c9bab0 000000405f666800
0x00000040616fc9e0:   0000004000000001 00000040616fc9f0
0x00000040616fc9f0:   0000000000000000 4bfe4e036fddc324
0x00000040616fca00:   10c98d76773d85b1 00005ea8b322f10a
0x00000040616fca10:   00000040616fcab8 000000404a33f317
0x00000040616fca20:   0000004061c9bab0 000000404a339c10
0x00000040616fca30:   000000404a339c10 000000404a33effc
0x00000040616fca40:   0000004000000100 0000004000000008
0x00000040616fca50:   0000000000000001 0000000000000000
0x00000040616fca60:   000000404a339c10 000000404a33efb6
0x00000040616fca70:   00000040616fca70 0000004061c9bab0
0x00000040616fca80:   00000040616fcb00 0000004061c9c370
0x00000040616fca90:   0000000000000000 00000000decf15a0
0x00000040616fcaa0:   0000004061c9bab0 0000000000000000
0x00000040616fcab0:   00000040616fcad8 00000040616fcb50 
Instructions: (pc=0x00007fffe2c74e80)
0x00007fffe2c74e60:   4d 8b 10 48 8d 45 e0 44 8b 45 30 4c 8d 4d e8 48
0x00007fffe2c74e70:   89 44 24 28 8b d7 8b 45 40 49 8b cb 89 44 24 20
0x00007fffe2c74e80:   41 ff 92 88 00 00 00 85 c0 48 0f 49 5d e0 48 8b
0x00007fffe2c74e90:   c3 48 8b 4d f8 48 33 cc e8 13 3f 00 00 48 8b 5c 
---------------  P R O C E S S  ---------------
Threads class SMR info:
_java_thread_list=0x00000040607b5a00, length=21, elements={
0x000000403ef83800, 0x000000403f070000, 0x000000403f074800, 0x000000405dd72000,
0x000000405ddb9000, 0x000000405ddbb000, 0x000000405de17000, 0x000000405de18800,
0x000000405e764800, 0x000000405e76d000, 0x000000405f134000, 0x000000405f14b000,
0x000000405f14d800, 0x000000405f19f800, 0x000000405f16f800, 0x000000405f666800,
0x000000405f64e800, 0x000000405f650800, 0x00000040607c1000, 0x00000040607be000,
0x00000040607c2000
}
Java Threads: ( => current thread )
  0x000000403ef83800 JavaThread "main" [_thread_blocked, id=1604, stack(0x000000403ee80000,0x000000403ef80000)]
  0x000000403f070000 JavaThread "Reference Handler" daemon [_thread_blocked, id=2896, stack(0x000000405df70000,0x000000405e070000)]
  0x000000403f074800 JavaThread "Finalizer" daemon [_thread_blocked, id=2236, stack(0x000000405e070000,0x000000405e170000)]
  0x000000405dd72000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2244, stack(0x000000405e250000,0x000000405e350000)]
  0x000000405ddb9000 JavaThread "Attach Listener" daemon [_thread_blocked, id=2400, stack(0x000000405e350000,0x000000405e450000)]
  0x000000405ddbb000 JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=2888, stack(0x000000405e450000,0x000000405e550000)]
  0x000000405de17000 JavaThread "C1 CompilerThread1" daemon [_thread_blocked, id=2460, stack(0x000000405e550000,0x000000405e650000)]
  0x000000405de18800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=684, stack(0x000000405e650000,0x000000405e750000)]
  0x000000405e764800 JavaThread "Service Thread" daemon [_thread_blocked, id=1912, stack(0x000000405eb50000,0x000000405ec50000)]
  0x000000405e76d000 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=1304, stack(0x000000405ed50000,0x000000405ee50000)]
  0x000000405f134000 JavaThread "Test worker" [_thread_blocked, id=1300, stack(0x000000405fa50000,0x000000405fb50000)]
  0x000000405f14b000 JavaThread "/127.0.0.1:1119 to /127.0.0.1:1118 workers Thread 2" [_thread_blocked, id=1980, stack(0x000000405fe30000,0x000000405ff30000)]
  0x000000405f14d800 JavaThread "/127.0.0.1:1119 to /127.0.0.1:1118 workers Thread 3" [_thread_in_native, id=1452, stack(0x000000405ff30000,0x0000004060030000)]
  0x000000405f19f800 JavaThread "testfx-async-pool-thread-1" daemon [_thread_blocked, id=1872, stack(0x0000004060230000,0x0000004060330000)]
  0x000000405f16f800 JavaThread "JavaFX-Launcher" daemon [_thread_blocked, id=2008, stack(0x0000004060330000,0x0000004060430000)]
=>0x000000405f666800 JavaThread "QuantumRenderer-0" daemon [_thread_in_native, id=600, stack(0x0000004061600000,0x0000004061700000)]
  0x000000405f64e800 JavaThread "JavaFX Application Thread" daemon [_thread_blocked, id=1468, stack(0x0000004061700000,0x0000004061800000)]
  0x000000405f650800 JavaThread "Timer-0" daemon [_thread_blocked, id=2496, stack(0x0000004061800000,0x0000004061900000)]
  0x00000040607c1000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1368, stack(0x0000004061b00000,0x0000004061c00000)]
  0x00000040607be000 JavaThread "Prism Font Disposer" daemon [_thread_blocked, id=2752, stack(0x0000004063190000,0x0000004063290000)]
  0x00000040607c2000 JavaThread "Cleaner-0" daemon [_thread_blocked, id=1240, stack(0x0000004063a90000,0x0000004063b90000)]
Other Threads:
  0x000000403f068800 VMThread "VM Thread" [stack: 0x000000405de70000,0x000000405df70000] [id=2172]
  0x000000405e76d800 WatcherThread [stack: 0x000000405ee50000,0x000000405ef50000] [id=1032]
  0x000000403ef9e000 GCTaskThread "GC Thread#0" [stack: 0x0000004059510000,0x0000004059610000] [id=1036]
  0x000000403ef9f800 GCTaskThread "GC Thread#1" [stack: 0x0000004059610000,0x0000004059710000] [id=1296]
  0x000000403efc1000 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000405ad40000,0x000000405ae40000] [id=1088]
  0x000000403efc4800 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000405ae40000,0x000000405af40000] [id=1632]
  0x000000403eff1800 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000405d170000,0x000000405d270000] [id=3020]
  0x000000403eff5800 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000405d270000,0x000000405d370000] [id=2284]
  0x000000403eff6800 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000405d370000,0x000000405d470000] [id=2560]
Threads with active compile tasks:
C2 CompilerThread02757       4       javafx.scene.CssStyleHelper::resolveRef (128 bytes)
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap address: 0x00000000de400000, size: 540 MB, Compressed Oops mode: 32-bit
Narrow klass base: 0x0000000000000000, Narrow klass shift: 3
Compressed class space size: 1073741824 Address: 0x0000000100000000
Heap:
 garbage-first heap   total 41984K, used 24829K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 6 young (6144K), 2 survivors (2048K)
 Metaspace       used 26798K, capacity 27760K, committed 28032K, reserved 1073152K
  class space    used 3433K, capacity 3868K, committed 3968K, reserved 1048576K
Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TS=gc time stamp, AC=allocation context, TAMS=top-at-mark-start (previous, next)
|   0|0x00000000de400000, 0x00000000de500000, 0x00000000de500000|100%| O|  |TS  0|AC  0|TAMS 0x00000000de500000, 0x00000000de500000|
|   1|0x00000000de500000, 0x00000000de600000, 0x00000000de600000|100%| O|  |TS  0|AC  0|TAMS 0x00000000de600000, 0x00000000de600000|
|   2|0x00000000de600000, 0x00000000de700000, 0x00000000de700000|100%| O|  |TS  0|AC  0|TAMS 0x00000000de700000, 0x00000000de700000|
|   3|0x00000000de700000, 0x00000000de800000, 0x00000000de800000|100%| O|  |TS  0|AC  0|TAMS 0x00000000de800000, 0x00000000de800000|
|   4|0x00000000de800000, 0x00000000de900000, 0x00000000de900000|100%|HS|  |TS  0|AC  0|TAMS 0x00000000de900000, 0x00000000de900000|
|   5|0x00000000de900000, 0x00000000dea00000, 0x00000000dea00000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000dea00000, 0x00000000dea00000|
|   6|0x00000000dea00000, 0x00000000deb00000, 0x00000000deb00000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000deb00000, 0x00000000deb00000|
|   7|0x00000000deb00000, 0x00000000dec00000, 0x00000000dec00000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000dec00000, 0x00000000dec00000|
|   8|0x00000000dec00000, 0x00000000ded00000, 0x00000000ded00000|100%| O|  |TS  0|AC  0|TAMS 0x00000000ded00000, 0x00000000ded00000|
|   9|0x00000000ded00000, 0x00000000dee00000, 0x00000000dee00000|100%| O|  |TS  0|AC  0|TAMS 0x00000000dee00000, 0x00000000dee00000|
|  10|0x00000000dee00000, 0x00000000dee79800, 0x00000000def00000| 47%| O|  |TS  0|AC  0|TAMS 0x00000000dee79800, 0x00000000dee79800|
|  11|0x00000000def00000, 0x00000000df000000, 0x00000000df000000|100%|HS|  |TS  0|AC  0|TAMS 0x00000000df000000, 0x00000000df000000|
|  12|0x00000000df000000, 0x00000000df100000, 0x00000000df100000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df100000, 0x00000000df100000|
|  13|0x00000000df100000, 0x00000000df200000, 0x00000000df200000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df200000, 0x00000000df200000|
|  14|0x00000000df200000, 0x00000000df300000, 0x00000000df300000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df300000, 0x00000000df300000|
|  15|0x00000000df300000, 0x00000000df400000, 0x00000000df400000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df400000, 0x00000000df400000|
|  16|0x00000000df400000, 0x00000000df500000, 0x00000000df500000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df500000, 0x00000000df500000|
|  17|0x00000000df500000, 0x00000000df600000, 0x00000000df600000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df600000, 0x00000000df600000|
|  18|0x00000000df600000, 0x00000000df700000, 0x00000000df700000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df700000, 0x00000000df700000|
|  19|0x00000000df700000, 0x00000000df800000, 0x00000000df800000|100%|HC|  |TS  0|AC  0|TAMS 0x00000000df800000, 0x00000000df800000|
|  20|0x00000000df800000, 0x00000000df800000, 0x00000000df900000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000df800000, 0x00000000df800000|
|  21|0x00000000df900000, 0x00000000df900000, 0x00000000dfa00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000df900000, 0x00000000df900000|
|  22|0x00000000dfa00000, 0x00000000dfa00000, 0x00000000dfb00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dfa00000, 0x00000000dfa00000|
|  23|0x00000000dfb00000, 0x00000000dfb00000, 0x00000000dfc00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dfb00000, 0x00000000dfb00000|
|  24|0x00000000dfc00000, 0x00000000dfc00000, 0x00000000dfd00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dfc00000, 0x00000000dfc00000|
|  25|0x00000000dfd00000, 0x00000000dfd00000, 0x00000000dfe00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dfd00000, 0x00000000dfd00000|
|  26|0x00000000dfe00000, 0x00000000dfe00000, 0x00000000dff00000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dfe00000, 0x00000000dfe00000|
|  27|0x00000000dff00000, 0x00000000dff00000, 0x00000000e0000000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000dff00000, 0x00000000dff00000|
|  28|0x00000000e0000000, 0x00000000e0000000, 0x00000000e0100000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0000000, 0x00000000e0000000|
|  29|0x00000000e0100000, 0x00000000e0100000, 0x00000000e0200000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0100000, 0x00000000e0100000|
|  30|0x00000000e0200000, 0x00000000e0200000, 0x00000000e0300000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0200000, 0x00000000e0200000|
|  31|0x00000000e0300000, 0x00000000e03c5d10, 0x00000000e0400000| 77%| S|CS|TS  0|AC  0|TAMS 0x00000000e0300000, 0x00000000e0300000|
|  32|0x00000000e0400000, 0x00000000e0500000, 0x00000000e0500000|100%| S|CS|TS  0|AC  0|TAMS 0x00000000e0400000, 0x00000000e0400000|
|  33|0x00000000e0500000, 0x00000000e0500000, 0x00000000e0600000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0500000, 0x00000000e0500000|
|  34|0x00000000e0600000, 0x00000000e0600000, 0x00000000e0700000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0600000, 0x00000000e0600000|
|  35|0x00000000e0700000, 0x00000000e0700000, 0x00000000e0800000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0700000, 0x00000000e0700000|
|  36|0x00000000e0800000, 0x00000000e0800000, 0x00000000e0900000|  0%| F|  |TS  0|AC  0|TAMS 0x00000000e0800000, 0x00000000e0800000|
|  37|0x00000000e0900000, 0x00000000e09db4f0, 0x00000000e0a00000| 85%| E|  |TS  0|AC  0|TAMS 0x00000000e0900000, 0x00000000e0900000|
|  38|0x00000000e0a00000, 0x00000000e0b00000, 0x00000000e0b00000|100%| E|CS|TS  0|AC  0|TAMS 0x00000000e0a00000, 0x00000000e0a00000|
|  39|0x00000000e0b00000, 0x00000000e0c00000, 0x00000000e0c00000|100%| E|CS|TS  0|AC  0|TAMS 0x00000000e0b00000, 0x00000000e0b00000|
|  40|0x00000000e0c00000, 0x00000000e0d00000, 0x00000000e0d00000|100%| E|CS|TS  0|AC  0|TAMS 0x00000000e0c00000, 0x00000000e0c00000|
Card table byte_map: [0x0000004059a40000,0x0000004059b50000] byte_map_base: 0x000000405934e000
Marking Bits (Prev, Next): (CMBitMap*) 0x000000403efc0038, (CMBitMap*) 0x000000403efc0000
 Prev Bits: [0x000000405a4d0000, 0x000000405ad40000)
 Next Bits: [0x0000004059c60000, 0x000000405a4d0000)
Polling page: 0x000000403d550000
CodeHeap 'non-profiled nmethods': size=120064Kb used=1127Kb max_used=1127Kb free=118936Kb
 bounds [0x0000004051df0000, 0x0000004052060000, 0x0000004059330000]
CodeHeap 'profiled nmethods': size=120000Kb used=5448Kb max_used=5448Kb free=114551Kb
 bounds [0x000000404a8c0000, 0x000000404ae20000, 0x0000004051df0000]
CodeHeap 'non-nmethods': size=5696Kb used=1313Kb max_used=1332Kb free=4382Kb
 bounds [0x000000404a330000, 0x000000404a5a0000, 0x000000404a8c0000]
 total_blobs=4024 nmethods=2735 adapters=634
 compilation: enabled
Compilation events (10 events):
Event: 5.031 Thread 0x000000405de17000 2747       1       com.sun.javafx.css.StyleMap::getId (5 bytes)
Event: 5.031 Thread 0x000000405de17000 nmethod 2747 0x0000004051f09790 code [0x0000004051f09940, 0x0000004051f09a58]
Event: 5.031 Thread 0x000000405de17000 2783       1       java.util.Collections$SingletonList::size (2 bytes)
Event: 5.032 Thread 0x000000405de17000 nmethod 2783 0x0000004051f09b10 code [0x0000004051f09cc0, 0x0000004051f09dd8]
Event: 5.042 Thread 0x000000405de17000 2794       2       java.lang.invoke.DelegatingMethodHandle::whichKind (40 bytes)
Event: 5.042 Thread 0x000000405de17000 nmethod 2794 0x000000404ae12090 code [0x000000404ae12240, 0x000000404ae123b8]
Event: 5.048 Thread 0x000000405de17000 2797       2       com.sun.javafx.geom.RectBounds::setBounds (22 bytes)
Event: 5.048 Thread 0x000000405de17000 nmethod 2797 0x000000404ae12490 code [0x000000404ae12640, 0x000000404ae127b8]
Event: 5.048 Thread 0x000000405de17000 2796       2       com.sun.marlin.IntArrayCache$Reference::putArray (55 bytes)
Event: 5.048 Thread 0x000000405de17000 nmethod 2796 0x000000404ae12890 code [0x000000404ae12a80, 0x000000404ae12e30]
GC Heap History (10 events):
Event: 1.564 GC heap before
{Heap before GC invocations=2 (full 0):
 garbage-first heap   total 34816K, used 19332K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 12 young (12288K), 1 survivors (1024K)
 Metaspace       used 17761K, capacity 18252K, committed 18432K, reserved 1064960K
  class space    used 2013K, capacity 2210K, committed 2304K, reserved 1048576K
}
Event: 1.574 GC heap after
{Heap after GC invocations=3 (full 0):
 garbage-first heap   total 34816K, used 9367K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 2 young (2048K), 2 survivors (2048K)
 Metaspace       used 17761K, capacity 18252K, committed 18432K, reserved 1064960K
  class space    used 2013K, capacity 2210K, committed 2304K, reserved 1048576K
}
Event: 1.887 GC heap before
{Heap before GC invocations=3 (full 0):
 garbage-first heap   total 34816K, used 13463K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 7 young (7168K), 2 survivors (2048K)
 Metaspace       used 20561K, capacity 21075K, committed 21296K, reserved 1069056K
  class space    used 2446K, capacity 2688K, committed 2688K, reserved 1048576K
}
Event: 1.896 GC heap after
{Heap after GC invocations=4 (full 0):
 garbage-first heap   total 34816K, used 10685K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 2 young (2048K), 2 survivors (2048K)
 Metaspace       used 20561K, capacity 21075K, committed 21296K, reserved 1069056K
  class space    used 2446K, capacity 2688K, committed 2688K, reserved 1048576K
}
Event: 2.013 GC heap before
{Heap before GC invocations=5 (full 0):
 garbage-first heap   total 34816K, used 11709K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 4 young (4096K), 2 survivors (2048K)
 Metaspace       used 21544K, capacity 22172K, committed 22576K, reserved 1069056K
  class space    used 2615K, capacity 2871K, committed 2944K, reserved 1048576K
}
Event: 2.018 GC heap after
{Heap after GC invocations=6 (full 0):
 garbage-first heap   total 41984K, used 11021K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 1 young (1024K), 1 survivors (1024K)
 Metaspace       used 21544K, capacity 22172K, committed 22576K, reserved 1069056K
  class space    used 2615K, capacity 2871K, committed 2944K, reserved 1048576K
}
Event: 3.349 GC heap before
{Heap before GC invocations=7 (full 0):
 garbage-first heap   total 41984K, used 31501K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 12 young (12288K), 1 survivors (1024K)
 Metaspace       used 23765K, capacity 24476K, committed 24832K, reserved 1071104K
  class space    used 2948K, capacity 3281K, committed 3328K, reserved 1048576K
}
Event: 3.372 GC heap after
{Heap after GC invocations=8 (full 0):
 garbage-first heap   total 41984K, used 20966K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 1 young (1024K), 1 survivors (1024K)
 Metaspace       used 23765K, capacity 24476K, committed 24832K, reserved 1071104K
  class space    used 2948K, capacity 3281K, committed 3328K, reserved 1048576K
}
Event: 4.366 GC heap before
{Heap before GC invocations=8 (full 0):
 garbage-first heap   total 41984K, used 29158K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 9 young (9216K), 1 survivors (1024K)
 Metaspace       used 25964K, capacity 26861K, committed 27392K, reserved 1073152K
  class space    used 3312K, capacity 3713K, committed 3840K, reserved 1048576K
}
Event: 4.372 GC heap after
{Heap after GC invocations=9 (full 0):
 garbage-first heap   total 41984K, used 21757K [0x00000000de400000, 0x0000000100000000)
  region size 1024K, 2 young (2048K), 2 survivors (2048K)
 Metaspace       used 25964K, capacity 26861K, committed 27392K, reserved 1073152K
  class space    used 3312K, capacity 3713K, committed 3840K, reserved 1048576K
}
Deoptimization events (10 events):
Event: 4.962 Thread 0x000000405f64e800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000004051ee199c method=com.sun.javafx.css.StyleManager$CacheContainer.getStyleMap(I)Lcom/sun/javafx/css/StyleMap; @ 22 c2
Event: 4.970 Thread 0x000000405f64e800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051ed7144 method=javafx.scene.Node.getScene()Ljavafx/scene/Scene; @ 7 c2
Event: 4.971 Thread 0x000000405f64e800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051ed7144 method=javafx.scene.Node.getScene()Ljavafx/scene/Scene; @ 7 c2
Event: 4.971 Thread 0x000000405f64e800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051ed7144 method=javafx.scene.Node.getScene()Ljavafx/scene/Scene; @ 7 c2
Event: 4.971 Thread 0x000000405f64e800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051ed7144 method=javafx.scene.Node.getScene()Ljavafx/scene/Scene; @ 7 c2
Event: 4.971 Thread 0x000000405f64e800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051ee716c method=javafx.scene.Node.getScene()Ljavafx/scene/Scene; @ 7 c2
Event: 4.982 Thread 0x000000405f64e800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000004051ec8744 method=com.sun.javafx.css.BitSet.addAll(Ljava/util/Collection;)Z @ 1 c2
Event: 5.000 Thread 0x000000405f64e800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000004051e3ec2c method=jdk.internal.org.objectweb.asm.Type.getArgumentsAndReturnSizes(Ljava/lang/String;)I @ 47 c2
Event: 5.000 Thread 0x000000405f64e800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x0000004051e5d11c method=jdk.internal.org.objectweb.asm.Frame.push(Ljdk/internal/org/objectweb/asm/ClassWriter;Ljava/lang/String;)V @ 18 c2
Event: 5.047 Thread 0x000000405f666800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000004051e4b618 method=java.util.concurrent.ConcurrentHashMap.putVal(Ljava/lang/Object;Ljava/lang/Object;Z)Ljava/lang/Object; @ 242 c2
Classes redefined (0 events):
No events
Internal exceptions (10 events):
Event: 4.752 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e0b41098}: method resolution failed> (0x00000000e0b41098) thrown at [t:/workspace/open/src/hotspot/share/prims/methodHandles.cpp, line 1226]
Event: 4.752 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e0b454c0}: method resolution failed> (0x00000000e0b454c0) thrown at [t:/workspace/open/src/hotspot/share/prims/methodHandles.cpp, line 1226]
Event: 4.939 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e0bc37e0}: java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(Ljava/lang/Object;I)V> (0x00000000e0bc37e0) thrown at [t:/workspace/open/src/hotspot/share/interpreter/linkResolver.cpp, line 741]
Event: 4.982 Thread 0x000000405f64e800 Implicit null exception at 0x0000004051ec80f1 to 0x0000004051ec872e
Event: 5.000 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e09200b0}: method resolution failed> (0x00000000e09200b0) thrown at [t:/workspace/open/src/hotspot/share/prims/methodHandles.cpp, line 1226]
Event: 5.000 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e09231f8}: java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)J> (0x00000000e09231f8) thrown at [t:/workspace/open/src/hotspot/share/inter
Event: 5.002 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e0936300}: method resolution failed> (0x00000000e0936300) thrown at [t:/workspace/open/src/hotspot/share/prims/methodHandles.cpp, line 1226]
Event: 5.002 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e093c1b0}: java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;J)Ljava/lang/Object;> (0x00000000e093c1b0) thrown at [t:/workspace/open/src/hotspot/share/interpret
Event: 5.002 Thread 0x000000405f64e800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e093f8a0}: method resolution failed> (0x00000000e093f8a0) thrown at [t:/workspace/open/src/hotspot/share/prims/methodHandles.cpp, line 1226]
Event: 5.033 Thread 0x000000405f666800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000e0c72628}: java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(Ljava/lang/Object;I)Ljava/lang/Object;> (0x00000000e0c72628) thrown at [t:/workspace/open/src/hotspot/share/interpreter/linkResolve
Events (10 events):
Event: 5.034 loading class java/lang/FdLibm done
Event: 5.036 loading class com/sun/scenario/effect/FilterContext
Event: 5.036 loading class com/sun/scenario/effect/FilterContext done
Event: 5.036 loading class com/sun/scenario/effect/impl/Renderer
Event: 5.036 loading class com/sun/scenario/effect/impl/Renderer done
Event: 5.036 loading class com/sun/scenario/effect/FilterContext
Event: 5.036 loading class com/sun/scenario/effect/FilterContext done
Event: 5.047 Thread 0x000000405f666800 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000004051e4b618 relative=0x00000000000011d8
Event: 5.047 Thread 0x000000405f666800 DEOPT PACKING pc=0x0000004051e4b618 sp=0x00000040616fcb80
Event: 5.047 Thread 0x000000405f666800 DEOPT UNPACKING pc=0x000000404a358a2f sp=0x00000040616fcb00 mode 2
Dynamic libraries:
0x00007ff78d530000 - 0x00007ff78d56e000 	C:\jdk10\bin\java.exe
0x00007ffffb920000 - 0x00007ffffbacd000 	C:\windows\SYSTEM32\ntdll.dll
0x00007ffffb030000 - 0x00007ffffb16e000 	C:\windows\system32\KERNEL32.DLL
0x00007ffff8e90000 - 0x00007ffff8fa5000 	C:\windows\system32\KERNELBASE.dll
0x00007ffffb7c0000 - 0x00007ffffb86a000 	C:\windows\system32\ADVAPI32.dll
0x00007ffffb640000 - 0x00007ffffb7b7000 	C:\windows\system32\USER32.dll
0x00007fffefdb0000 - 0x00007ffff002b000 	C:\windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.18006_none_623f33d3ecbe86e8\COMCTL32.dll
0x00007ffff29c0000 - 0x00007ffff29ca000 	C:\windows\SYSTEM32\VERSION.dll
0x00007ffffb870000 - 0x00007ffffb91a000 	C:\windows\system32\msvcrt.dll
0x00007ffffab20000 - 0x00007ffffab79000 	C:\windows\SYSTEM32\sechost.dll
0x00007ffffa980000 - 0x00007ffffaac0000 	C:\windows\system32\RPCRT4.dll
0x00007ffffaee0000 - 0x00007ffffb02b000 	C:\windows\system32\GDI32.dll
0x00007ffff8b20000 - 0x00007ffff8b4e000 	C:\windows\system32\SspiCli.dll
0x00007ffffa790000 - 0x00007ffffa7c6000 	C:\windows\system32\IMM32.DLL
0x00007ffff90e0000 - 0x00007ffff9231000 	C:\windows\system32\MSCTF.dll
0x00007fffee3a0000 - 0x00007fffee48f000 	C:\jdk10\bin\msvcr120.dll
0x00007fffe3ab0000 - 0x00007fffe3b56000 	C:\jdk10\bin\msvcp120.dll
0x0000000077590000 - 0x0000000077fff000 	C:\jdk10\bin\server\jvm.dll
0x00007ffff0b60000 - 0x00007ffff0b69000 	C:\windows\SYSTEM32\WSOCK32.dll
0x00007ffff1d30000 - 0x00007ffff1d52000 	C:\windows\SYSTEM32\WINMM.dll
0x00007ffffa770000 - 0x00007ffffa777000 	C:\windows\system32\PSAPI.DLL
0x00007ffffab80000 - 0x00007ffffabda000 	C:\windows\system32\WS2_32.dll
0x00007ffff1d00000 - 0x00007ffff1d2a000 	C:\windows\SYSTEM32\WINMMBASE.dll
0x00007ffffa780000 - 0x00007ffffa789000 	C:\windows\system32\NSI.dll
0x00007ffff8c00000 - 0x00007ffff8c4f000 	C:\windows\SYSTEM32\cfgmgr32.dll
0x00007ffff78f0000 - 0x00007ffff7918000 	C:\windows\SYSTEM32\DEVOBJ.dll
0x00007fffeebc0000 - 0x00007fffeebcf000 	C:\jdk10\bin\verify.dll
0x00007fffe3920000 - 0x00007fffe3aa9000 	C:\windows\SYSTEM32\DBGHELP.DLL
0x00007fffee370000 - 0x00007fffee397000 	C:\jdk10\bin\java.dll
0x00007fffeeba0000 - 0x00007fffeebb6000 	C:\jdk10\bin\zip.dll
0x00007fffee360000 - 0x00007fffee36a000 	C:\jdk10\bin\jimage.dll
0x00007ffff9240000 - 0x00007ffffa76c000 	C:\windows\system32\SHELL32.dll
0x00007ffffabe0000 - 0x00007ffffadf2000 	C:\windows\SYSTEM32\combase.dll
0x00007ffffaac0000 - 0x00007ffffab14000 	C:\windows\system32\SHLWAPI.dll
0x00007ffff55d0000 - 0x00007ffff5682000 	C:\windows\SYSTEM32\SHCORE.dll
0x00007ffff8a50000 - 0x00007ffff8a65000 	C:\windows\SYSTEM32\profapi.dll
0x00007fffea0f0000 - 0x00007fffea10a000 	C:\jdk10\bin\net.dll
0x00007ffff4820000 - 0x00007ffff48e7000 	C:\windows\SYSTEM32\WINHTTP.dll
0x00007ffff8320000 - 0x00007ffff8379000 	C:\windows\system32\mswsock.dll
0x00007fffea0d0000 - 0x00007fffea0e1000 	C:\jdk10\bin\nio.dll
0x00007ffff83f0000 - 0x00007ffff8410000 	C:\windows\SYSTEM32\CRYPTSP.dll
0x00007ffff7d80000 - 0x00007ffff7db6000 	C:\windows\system32\rsaenh.dll
0x00007ffff8530000 - 0x00007ffff8556000 	C:\windows\SYSTEM32\bcrypt.dll
0x00007ffff8380000 - 0x00007ffff83a1000 	C:\windows\SYSTEM32\USERENV.dll
0x00007ffff8850000 - 0x00007ffff88b3000 	C:\windows\system32\bcryptprimitives.dll
0x00007ffff88c0000 - 0x00007ffff88cb000 	C:\windows\SYSTEM32\CRYPTBASE.dll
0x00007ffff6630000 - 0x00007ffff665a000 	C:\windows\SYSTEM32\IPHLPAPI.DLL
0x00007ffff6680000 - 0x00007ffff668a000 	C:\windows\SYSTEM32\WINNSI.DLL
0x00007ffff6110000 - 0x00007ffff6126000 	C:\windows\SYSTEM32\dhcpcsvc6.DLL
0x00007ffff5c10000 - 0x00007ffff5c2a000 	C:\windows\SYSTEM32\dhcpcsvc.DLL
0x00007ffff2d40000 - 0x00007ffff2d43000 	C:\jdk10\bin\api-ms-win-core-console-l1-1-0.dll
0x00007ffff2d30000 - 0x00007ffff2d33000 	C:\jdk10\bin\api-ms-win-core-datetime-l1-1-0.dll
0x00007ffff2d20000 - 0x00007ffff2d23000 	C:\jdk10\bin\api-ms-win-core-debug-l1-1-0.dll
0x00007ffff28e0000 - 0x00007ffff28e3000 	C:\jdk10\bin\api-ms-win-core-errorhandling-l1-1-0.dll
0x00007ffff1930000 - 0x00007ffff1934000 	C:\jdk10\bin\api-ms-win-core-file-l1-1-0.dll
0x00007ffff1920000 - 0x00007ffff1923000 	C:\jdk10\bin\api-ms-win-core-file-l1-2-0.dll
0x00007ffff1910000 - 0x00007ffff1913000 	C:\jdk10\bin\api-ms-win-core-file-l2-1-0.dll
0x00007ffff1900000 - 0x00007ffff1903000 	C:\jdk10\bin\api-ms-win-core-handle-l1-1-0.dll
0x00007ffff18f0000 - 0x00007ffff18f3000 	C:\jdk10\bin\api-ms-win-core-heap-l1-1-0.dll
0x00007ffff18e0000 - 0x00007ffff18e3000 	C:\jdk10\bin\api-ms-win-core-interlocked-l1-1-0.dll
0x00007ffff18d0000 - 0x00007ffff18d3000 	C:\jdk10\bin\api-ms-win-core-libraryloader-l1-1-0.dll
0x00007ffff18c0000 - 0x00007ffff18c3000 	C:\jdk10\bin\api-ms-win-core-localization-l1-2-0.dll
0x00007ffff18b0000 - 0x00007ffff18b3000 	C:\jdk10\bin\api-ms-win-core-memory-l1-1-0.dll
0x00007ffff18a0000 - 0x00007ffff18a3000 	C:\jdk10\bin\api-ms-win-core-namedpipe-l1-1-0.dll
0x00007ffff1890000 - 0x00007ffff1893000 	C:\jdk10\bin\api-ms-win-core-processenvironment-l1-1-0.dll
0x00007ffff1880000 - 0x00007ffff1883000 	C:\jdk10\bin\api-ms-win-core-processthreads-l1-1-0.dll
0x00007ffff1870000 - 0x00007ffff1873000 	C:\jdk10\bin\api-ms-win-core-processthreads-l1-1-1.dll
0x00007ffff1860000 - 0x00007ffff1863000 	C:\jdk10\bin\api-ms-win-core-profile-l1-1-0.dll
0x00007ffff1850000 - 0x00007ffff1853000 	C:\jdk10\bin\api-ms-win-core-rtlsupport-l1-1-0.dll
0x00007ffff1840000 - 0x00007ffff1843000 	C:\jdk10\bin\api-ms-win-core-string-l1-1-0.dll
0x00007ffff1830000 - 0x00007ffff1833000 	C:\jdk10\bin\api-ms-win-core-synch-l1-1-0.dll
0x00007ffff1820000 - 0x00007ffff1823000 	C:\jdk10\bin\api-ms-win-core-synch-l1-2-0.dll
0x00007ffff1810000 - 0x00007ffff1813000 	C:\jdk10\bin\api-ms-win-core-sysinfo-l1-1-0.dll
0x00007ffff1800000 - 0x00007ffff1803000 	C:\jdk10\bin\api-ms-win-core-timezone-l1-1-0.dll
0x00007ffff17f0000 - 0x00007ffff17f3000 	C:\jdk10\bin\api-ms-win-core-util-l1-1-0.dll
0x00007ffff17e0000 - 0x00007ffff17e3000 	C:\jdk10\bin\api-ms-win-crt-conio-l1-1-0.dll
0x00007ffff17d0000 - 0x00007ffff17d4000 	C:\jdk10\bin\api-ms-win-crt-convert-l1-1-0.dll
0x00007ffff17c0000 - 0x00007ffff17c3000 	C:\jdk10\bin\api-ms-win-crt-environment-l1-1-0.dll
0x00007ffff17b0000 - 0x00007ffff17b3000 	C:\jdk10\bin\api-ms-win-crt-filesystem-l1-1-0.dll
0x00007ffff17a0000 - 0x00007ffff17a3000 	C:\jdk10\bin\api-ms-win-crt-heap-l1-1-0.dll
0x00007ffff1790000 - 0x00007ffff1793000 	C:\jdk10\bin\api-ms-win-crt-locale-l1-1-0.dll
0x00007ffff1780000 - 0x00007ffff1785000 	C:\jdk10\bin\api-ms-win-crt-math-l1-1-0.dll
0x00007ffff1770000 - 0x00007ffff1775000 	C:\jdk10\bin\api-ms-win-crt-multibyte-l1-1-0.dll
0x00007ffff1120000 - 0x00007ffff1130000 	C:\jdk10\bin\api-ms-win-crt-private-l1-1-0.dll
0x00007ffff1110000 - 0x00007ffff1113000 	C:\jdk10\bin\api-ms-win-crt-process-l1-1-0.dll
0x00007ffff1100000 - 0x00007ffff1104000 	C:\jdk10\bin\api-ms-win-crt-runtime-l1-1-0.dll
0x00007ffff0bb0000 - 0x00007ffff0bb4000 	C:\jdk10\bin\api-ms-win-crt-stdio-l1-1-0.dll
0x00007ffff0ba0000 - 0x00007ffff0ba4000 	C:\jdk10\bin\api-ms-win-crt-string-l1-1-0.dll
0x00007ffff0b90000 - 0x00007ffff0b93000 	C:\jdk10\bin\api-ms-win-crt-time-l1-1-0.dll
0x00007ffff0b80000 - 0x00007ffff0b83000 	C:\jdk10\bin\api-ms-win-crt-utility-l1-1-0.dll
0x00007fffe2cd0000 - 0x00007fffe2dc6000 	C:\jdk10\bin\ucrtbase.dll
0x00007fffe2cb0000 - 0x00007fffe2cc6000 	C:\jdk10\bin\vcruntime140.dll
0x00007fffe2aa0000 - 0x00007fffe2b3c000 	C:\jdk10\bin\msvcp140.dll
0x00007fffe2a40000 - 0x00007fffe2a91000 	C:\jdk10\bin\concrt140.dll
0x00007fffe2c90000 - 0x00007fffe2cac000 	C:\jdk10\bin\prism_sw.dll
0x00007fffe2c70000 - 0x00007fffe2c84000 	C:\jdk10\bin\javafx_font.dll
0x00007ffffb370000 - 0x00007ffffb504000 	C:\windows\system32\ole32.dll
0x00007fffe26d0000 - 0x00007fffe286b000 	C:\jdk10\bin\awt.dll
0x00007ffffae00000 - 0x00007ffffaec6000 	C:\windows\system32\OLEAUT32.dll
0x00007ffff5c80000 - 0x00007ffff6101000 	C:\windows\SYSTEM32\d2d1.dll
0x00007ffff75c0000 - 0x00007ffff764e000 	C:\windows\system32\apphelp.dll
0x00007fffe29d0000 - 0x00007fffe2a35000 	C:\jdk10\bin\fontmanager.dll
0x00007ffff7750000 - 0x00007ffff7879000 	C:\windows\system32\uxtheme.dll
0x00007fffee660000 - 0x00007fffee84a000 	C:\windows\SYSTEM32\dwrite.dll
0x00007ffff1b70000 - 0x00007ffff1b87000 	C:\jdk10\bin\decora_sse.dll
0x00007ffff7710000 - 0x00007ffff771b000 	C:\windows\SYSTEM32\kernel.appcore.dll
0x00007ffffb580000 - 0x00007ffffb636000 	C:\windows\SYSTEM32\clbcatq.dll
dbghelp: loaded successfully - version: 4.0.5 - missing functions: none
symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\jdk10\bin;C:\windows\SYSTEM32;C:\windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.18006_none_623f33d3ecbe86e8;C:\jdk10\bin\server
VM Arguments:
jvm_args: -Dorg.gradle.native=false -Dfile.encoding=windows-1252 -Duser.country=US -Duser.language=en -Duser.variant -ea -Djava.awt.headless=true -Dtestfx.robot=glass -Dtestfx.headless=true -Dprism.order=sw -Dprism.text=t2k 
java_command: worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 1'
java_class_path (initial): C:\\Users\\appveyor\\.gradle\\caches\\4.6\\workerMain\\gradle-worker.jar;C:\\projects\\testfx\\subprojects\\testfx-core\\build\\classes\\java\\test;C:\\projects\\testfx\\subprojects\\testfx-core\\build\\resources\\test;C:\\projects\\testfx\\subprojects\\testfx-core\\build\\classes\\java\\main;C:\\projects\\testfx\\subprojects\\testfx-core\\build\\resources\\main;C:\\projects\\testfx\\subprojects\\testfx-junit\\build\\libs\\testfx-junit-4.0.13-alpha.jar;C:\\projects\\testfx\\subprojects\\testfx-core\\build\\libs\\testfx-core-4.0.13-alpha.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\junit\\junit\\4.12\\2973d150c0dc1fefe998f834810d68f278ea58ec\\junit-4.12.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\org.hamcrest\\hamcrest-core\\1.3\\42a25dc3219429f0e5d060061f71acb49bf010a0\\hamcrest-core-1.3.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\org.assertj\\assertj-core\\3.9.1\\c5ce126b15f28d56cd8f960c1a6a058b9c9aea87\\assertj-core-3.9.1.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\org.mockito\\mockito-core\\2.18.0\\d3e839acfc4b862bbcfe9165c316f1567db24cb6\\mockito-core-2.18.0.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\org.testfx\\openjfx-monocle\\jdk-9+181\\c412deb11898e532c46e4d6c2808e4227f120445\\openjfx-monocle-jdk-9+181.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\net.bytebuddy\\byte-buddy\\1.8.3\\c7625191ad0f190bd719f0aef54ece5fdf0e4a77\\byte-buddy-1.8.3.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\net.bytebuddy\\byte-buddy-agent\\1.8.3\\897127e8724cbf38f72b4c85fe8e39e7ae00d688\\byte-buddy-agent-1.8.3.jar;C:\\Users\\appveyor\\.gradle\\caches\\modules-2\\files-2.1\\org.objenesis\\objenesis\\2.6\\639033469776fd37c08358c6b92a4761feb2af4b\\objenesis-2.6.jar
Launcher Type: SUN_STANDARD
Logging:
Log output configuration:
#0: stdout all=warning uptime,level,tags
#1: stderr all=off uptime,level,tags
Environment Variables:
JAVA_HOME=C:\jdk10
_JAVA_OPTIONS=-Djava.awt.headless=true -Dtestfx.robot=glass -Dtestfx.headless=true -Dprism.order=sw -Dprism.text=t2k
CLASSPATH=C:\projects\testfx\\gradle\wrapper\gradle-wrapper.jar
PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\7-Zip;C:\Program Files\Microsoft\Web Platform Installer\;C:\Tools\GitVersion;C:\Tools\PsTools;C:\Program Files\Git LFS;C:\Program Files (x86)\Subversion\bin;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\Tools\WebDriver;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\;C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin;C:\Ruby193\bin;C:\Tools\NUnit\bin;C:\Tools\xUnit;C:\Tools\MSpec;C:\Tools\Coverity\bin;C:\Program Files (x86)\CMake\bin;C:\go\bin;C:\Program Files\Java\jdk1.8.0\bin;C:\Python27;C:\Program Files\nodejs;C:\Program Files (x86)\iojs;C:\Program Files\iojs;C:\Users\appveyor\AppData\Roaming\npm;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\MSBuild\14.0\Bin;C:\Tools\NuGet;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft DNX\Dnvm;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Apache\Maven\bin;C:\Python27\Scripts;C:\Tools\NUnit3;C:\Program Files\Mercurial\;C:\Program Files\LLVM\bin;C:\Program Files\dotnet\;C:\Tools\curl\bin;C:\Program Files\Amazon\AWSCLI\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x
USERNAME=appveyor
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel
---------------  S Y S T E M  ---------------
OS: Windows Server 2012 R2 , 64 bit Build 9600 (6.3.9600.17415)
CPU:total 2 (initial active 2) (2 cores per cpu, 1 threads per core) family 6 model 63 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, tsc, bmi1, bmi2, fma
Memory: 4k page, physical 2204696k(540100k free), swap 2700512k(618992k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (10+46) for windows-amd64 JRE (10+46), built on Mar  8 2018 02:11:18 by "mach5one" with MS VC++ 12.0 (VS2013)
END.

@eugener eugener added the bug Something isn't working label Apr 13, 2018
@kevinrushforth
Copy link
Collaborator

Is it possible that you were somehow falling back to T2K when running with JDK 9? The native font implementation, which calls DirectWrite on Windows platforms, has been the default since JDK 8, but we would fall back to T2K on Windows platforms without the necessary support (or via java -Dprism.text=t2k). The T2K code was removed in JDK 10, so there is no longer a fallback path. The fallback should have only ever happened on Windows Vista, though.

@kevinrushforth
Copy link
Collaborator

kevinrushforth commented Apr 13, 2018

Answering my own question, I see this in your log:

    -Dprism.text=t2k

which means you were running T2K with JDK 9 and earlier. That flag is now ignored, so you are running the native font code with JDK 10. So that at least explains why the upgrade to JDK 10 has triggered this bug.

@kevinrushforth
Copy link
Collaborator

I filed JDK-8201539 in JBS.

@brcolow
Copy link
Contributor Author

brcolow commented Apr 13, 2018

That makes a lot of sense, thanks so much for tracking that down. I always wondered why we used that argument... 😆

@brcolow
Copy link
Contributor Author

brcolow commented Apr 16, 2018

If we trust the native back-trace, it says the access violation occurs at javafx_font!cacheDWRITE_GLYPH_METRICSFields+0x280: which corresponds to void cacheDWRITE_GLYPH_METRICSFields(JNIEnv *env) in directwrite.cpp.

@brcolow
Copy link
Contributor Author

brcolow commented Apr 25, 2018

@ararunprasad You were very helpful with the MathML bug (#71), do you think you could provide a little guidance on this one?

@arajkumar
Copy link
Contributor

@brcolow , let me take a look.

@kevinrushforth
Copy link
Collaborator

@brcolow @ararunprasad We roughly know what the problem is: Some initialization that is done by either the D3D pipeline or Glass (either is sufficient) is needed to allow the DirectWrite calls used by the native font code to work.

pyokagan added a commit to pyokagan/addressbook-level4 that referenced this issue Jun 30, 2018
Due to a JavaFX bug[1], JDK 10 on Windows will fail to run tests in
headless mode.

As such, let's warn developers against using JDK 10 on Windows in our
documentation, and recommend that they use JDK 9 instead.

Some developers who have both JDK 9 and JDK 10 installed on their
systems may have trouble coaxing Gradle to use JDK 10. As such, to make
it easier to troubleshoot the setup of such developers, let's teach
build.gradle to print a warning to console if it detects that it is
running with JDK 10 on Windows.

[1] javafxports/openjdk-jfx#66
pyokagan added a commit to pyokagan/addressbook-level4 that referenced this issue Jun 30, 2018
Due to a JavaFX bug[1], JDK 10 on Windows will fail to run tests in
headless mode.

As such, let's warn developers against using JDK 10 on Windows in our
documentation, and recommend that they use JDK 9 instead.

Some developers who have both JDK 9 and JDK 10 installed on their
systems may have trouble coaxing Gradle to use JDK 10. As such, to make
it easier to troubleshoot the setup of such developers, let's teach
build.gradle to print a warning to console if it detects that it is
running with JDK 10 on Windows.

[1] javafxports/openjdk-jfx#66
pyokagan added a commit to pyokagan/addressbook-level4 that referenced this issue Jul 3, 2018
Due to a JavaFX bug[1], JDK 10 on Windows will fail to run tests in
headless mode.

As such, let's warn developers against using JDK 10 on Windows in our
documentation, and recommend that they use JDK 9 instead.

Some developers who have both JDK 9 and JDK 10 installed on their
systems may have trouble coaxing Gradle to use JDK 10. As such, to make
it easier to troubleshoot the setup of such developers, let's teach
build.gradle to print a warning to console if it detects that it is
running with JDK 10 on Windows.

[1] javafxports/openjdk-jfx#66
@brcolow
Copy link
Contributor Author

brcolow commented Jul 30, 2018

To get started on this issue, I took a look at the source code to figure out where the crash is happening, and that is here:

/* IWICImagingFactory*/
JNIEXPORT jlong JNICALL OS_NATIVE(CreateBitmap)
    (JNIEnv *env, jclass that, jlong arg0, jint arg1, jint arg2, jint arg3, jint arg4)
{
    IWICBitmap* result = NULL;
    GUID pixelFormat;
    switch (arg3) {
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat8bppGray:pixelFormat = GUID_WICPixelFormat8bppGray; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat8bppAlpha:pixelFormat = GUID_WICPixelFormat8bppAlpha; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat16bppGray: pixelFormat = GUID_WICPixelFormat16bppGray; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat24bppRGB: pixelFormat = GUID_WICPixelFormat24bppRGB; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat24bppBGR: pixelFormat = GUID_WICPixelFormat24bppBGR; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppBGR: pixelFormat = GUID_WICPixelFormat32bppBGR; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppBGRA: pixelFormat = GUID_WICPixelFormat32bppBGRA; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppPBGRA: pixelFormat = GUID_WICPixelFormat32bppPBGRA; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppGrayFloat: pixelFormat = GUID_WICPixelFormat32bppGrayFloat; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppRGBA: pixelFormat = GUID_WICPixelFormat32bppRGBA; break;
    case com_sun_javafx_font_directwrite_OS_GUID_WICPixelFormat32bppPRGBA: pixelFormat = GUID_WICPixelFormat32bppPRGBA; break;
    }

    HRESULT hr = ((IWICImagingFactory *)arg0)->CreateBitmap(arg1, arg2, (REFWICPixelFormatGUID)pixelFormat, (WICBitmapCreateCacheOption)arg4, &result);
    return SUCCEEDED(hr) ? (jlong)result : NULL;
}

It seems that arg0 is the likely cantidate for being null, and that is a pointer to the IWICImagingFactory instance, which should be set by the following method:

private static final native long _WICCreateImagingFactory();

which is implemented as native code in directwrite.cpp thusly:

JNIEXPORT jlong JNICALL OS_NATIVE(_1WICCreateImagingFactory)
    (JNIEnv *env, jclass that)
{
    /* This routine initialize COM in order to create an WICImagingFactory.
     * It runs on the prism thread and expects no other codes in this thread
     * to interface with COM.
     * Note: This method is called by DWFactory a single time.
     */
    HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);

    /* This means COM has been initialize with a different concurrency model.
     * This should never happen. */
    if (hr == RPC_E_CHANGED_MODE) return NULL;

    IWICImagingFactory* result = NULL;
    hr = CoCreateInstance(
            CLSID_WICImagingFactory,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_PPV_ARGS(&result)
            );

    /* Unload COM as no other COM objects will be create directly */
    CoUninitialize();
    return SUCCEEDED(hr) ? (jlong)result : NULL;

I will try and investigate further.

Edit: I found something kind of interesting with regards to CLSID_WICImagingFactory https://github.com/google/skia/blob/master/src/ports/SkImageGeneratorWIC.cpp#L12 - but I have no idea if that would apply in our case or not.

Also, is it reliable to trust the java backtrace in the crash report, or is the native backtrace more reliable?

Piggy-backing off your comment @kevinrushforth - is there any chance you could be more specific? Is it that Monocle needs to initialize something with respect to DirectWrite that is only being initialized by Glass?

Edit 2: I don't think CLSID_WICImagingFactory has anything to do with it, because we explicitly set WIN32_WINNT=0x0601 which targets Windows 7 APIs, not 8+.

I'm working on compiling OpenJFX locally on my Windows development machine, but for some reason the first build is taking hours upon hours (seems to be stalling at :graphics:buildModuleWin). I am at least creating a simple build script that can be used when working locally on Windows to build without setting any environment variables, etc. Are there any such scripts that you guys at Oracle use internally when working on OpenJFX that are not in this repository, or is the configuration of the machines that you run builds on somehow standardized?

Edit 3: Got a first successful local build of OpenJFX. I don't have cygwin installed, so I think the docs are incorrect in requiring Cygwin. It may only be working because I have WSL installed, though. Anyways, to compile locally I had to make some very small tweaks to the gradle build file, and I also created a powershell script that may be useful for others, I will open a PR for that soon-ish.

SamCarlberg added a commit to SamCarlberg/shuffleboard that referenced this issue Jul 31, 2018
@brcolow
Copy link
Contributor Author

brcolow commented Aug 2, 2018

Alright, I was able to debug using a locally built JavaFX and Visual Studio 2017 Community:

javafx_font.dll!Java_com_sun_javafx_font_directwrite_OS_CreateBitmap(JNIEnv_ * env=0x000001f2e1ec3a70, _jclass * that=0x0000003f492fd0e8, __int64 arg0=2142694496368, long arg1=256, long arg2=256, long arg3=8, long arg4=1) Line 2359
at c:\users\brcolow\dev\openjdk-jfx\modules\javafx.graphics\src\main\native-font\directwrite.cpp(2359)

The crash happens on this line:

HRESULT hr = ((IWICImagingFactory *)arg0)->CreateBitmap(arg1, arg2, (REFWICPixelFormatGUID)pixelFormat, (WICBitmapCreateCacheOption)arg4, &result);

Dissasembly:

call qword ptr [rax+88] <--- I believe this is calling the function CreateBitmap on arg0

result is highlighted red in the local variables table, though (meaning it's null - hence the illegal access exception I believe):

  Name Value Type
result 0x0000000000000000 IWICBitmap *

The docs for CreateBitmap are https://docs.microsoft.com/en-us/windows/desktop/api/wincodec/nf-wincodec-iwicimagingfactory-createbitmap

It seems it is normal to call CreateBitmap in this way, so perhaps it is that the CreateBitmap call itself is returning null? Perhaps that is the missing initialization that you referred to, Kevin. I'm not sure how to tell the difference between result being null and the method returning a null pointer. I will dig in deeper with the debugger and try and get to the bottom of what exactly is the problem. I have never debugged native code before, so it's a learning process for me.

Just wanted to post my progress, will update as I get more information.

Debugger screenshot:

javafx native crash

@brcolow
Copy link
Contributor Author

brcolow commented Aug 3, 2018

The changes in this commit seem to stop the crash for me (unless for some bewitching reason logging statements are having some effect or maybe after a couple tries without restarting it works?):

brcolow@29c01b9

but I can't easily tell because compilation takes so long. If someone could test it with the changes (@kevinrushforth @ararunprasad ) and LMK if I'm seeing an apparition or not, that would be much appreciated. Then we could narrow down which change it is.

@brcolow
Copy link
Contributor Author

brcolow commented Aug 4, 2018

I was able to prevent the crash with only the following change to directwrite.cpp:

JNIEXPORT jlong JNICALL OS_NATIVE(_1WICCreateImagingFactory)
    (JNIEnv *env, jclass that)
{
    /* This routine initialize COM in order to create an WICImagingFactory.
     * It runs on the prism thread and expects no other codes in this thread
     * to interface with COM.
     * Note: This method is called by DWFactory a single time.
     */
    HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);

    /* This means COM has been initialize with a different concurrency model.
     * This should never happen. */
    if (hr == RPC_E_CHANGED_MODE) return NULL;

    IWICImagingFactory* result = NULL;
    hr = CoCreateInstance(
-           CLSID_WICImagingFactory
+           CLSID_WICImagingFactory1,
             NULL,
             CLSCTX_INPROC_SERVER,
             IID_PPV_ARGS(&result)
             );
+   if (hr == REGDB_E_CLASSNOTREG) {
+       hr = CoCreateInstance(
+               CLSID_WICImagingFactory,
+               NULL,
+               CLSCTX_INPROC_SERVER,
+               IID_PPV_ARGS(&result)
+               );
+    }

    /* Unload COM as no other COM objects will be create directly */
    CoUninitialize();
    return SUCCEEDED(hr) ? (jlong)result : NULL;
}

As soon as someone can re-produce the fix I'm seeing, I'll open a PR (I have a hard time believing it was this easy...).

@kevinrushforth
Copy link
Collaborator

@brcolow I can take a look early next week. As this is a P2 bug, we can still get a fix into openjfx 11 if a safe fix can be found.

@brcolow
Copy link
Contributor Author

brcolow commented Aug 4, 2018

I'm not sure if https://ci.appveyor.com/project/brcolow/openjdk-jfx/build/master%20267?fullLog=true proves that it fixes the crash or not, because I'm not sure if text is ever rendered to the screen without -PUSE_ROBOT=true and -PFULL_TEST=true (both of which make the time be exceeded on Appveyor). So, I can only reproduce the fix locally.

@brcolow
Copy link
Contributor Author

brcolow commented Aug 7, 2018

@kevinrushforth Do you think you will have time to take a look by tomorrow (Wednesday)? I know you are busy.

Or anyone else that can build OpenJFX locally on Windows - let me know (and save Kevin the work!).

@kevinrushforth
Copy link
Collaborator

I hope so... I'll put it on my list of reviews for tomorrow.

@kevinrushforth
Copy link
Collaborator

I ran a quick test, and it still crashes for me.

@brcolow
Copy link
Contributor Author

brcolow commented Aug 9, 2018

Huh...interesting. Okay, thanks. I will look more deeply into this.

@brcolow
Copy link
Contributor Author

brcolow commented Aug 9, 2018

@kevinrushforth

Check out this build which crashes (which only has the small changeset I mentioned above):

https://ci.appveyor.com/project/brcolow/openjdk-jfx/build/monocle-sw-font-crash%20268?fullLog=true#L22477

Now compare that to this build, with the same test (no crash there, and indeed no where on any other tests):

https://ci.appveyor.com/project/brcolow/openjdk-jfx/build/monocle-sw-font-crash%20272?fullLog=true#L22977

So it seems that the full changes (those in this PR):

brcolow#7

Are enough to stop the crash, probably at the expense of a memory leak as I mentioned earlier. Can you confirm? Thanks.

Edit: I messed up the PR I linked to, there are too many changes, let me fix that.
Edit 2: Fixed.

@kevinrushforth
Copy link
Collaborator

I can confirm that with the patched referenced above, it does not crash. The only difference between that and the patch I tried last night was the following:

     /* Unload COM as no other COM objects will be create directly */
-    CoUninitialize();
+    //CoUninitialize();
     return SUCCEEDED(hr) ? (jlong)result : NULL;

This is an interesting observation that may lead to a solution, but is not something we would want to use directly.

@JanMosigItemis
Copy link

I can approve, that the workaround @meszarv mentioned actually works. Only problem is: You need to really run it before any FxToolkit code, which will most likely require static initialization blocks in many cases and clever class loading prediction.

I would test the fix kindly provided by @kevinrushforth but unfortunately it has not been released yet.

@kevinrushforth
Copy link
Collaborator

The fix will be in the next early access build of JavaFX 13 (build 2).

JanMosigItemis added a commit to JanMosigItemis/dodo that referenced this issue Mar 14, 2019
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 21, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'
for all platforms.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's set 'prism.order' property to be 'd3d' on Windows OS but retain
it to be 'sw' on other platforms as a temporary workaround to solve
the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 21, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'
for all platforms.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's set 'prism.order' property to be 'd3d' on Windows OS but retain
it to be 'sw' on other platforms as a temporary workaround to solve
the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 21, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'
for all platforms.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's set 'prism.order' property to be 'd3d' on Windows OS but retain
it to be 'sw' on other platforms as a temporary workaround to solve
the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 21, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 24, 2019
We currently advertise that we support "JDK 8". However, the public
updates of Java SE 8 for personal users will end soon [1].

JDK 11 is the next Long-Term-Support (LTS) release after JDK 8 [1].
It is better for us to keep updated with the latest release of JDK.

Let's update our target JDK to version 11, with the following steps:

  * We use openjfx-monocle version jdk-11+26 since that is the latest
      version of openjfx-monocle that supports JDK 11 [2].

  * We bump the target and source compatibility of Gradle to JDK11.

  * We update Travis and AppVoyer configs to use JDK11 as runtime
      environment.

  * We remove the add-on in Travis config because it is redundant for
      JDK 11 [3].

  * We make it clear in the User Guide / Developer Guide that we only
      support JDK 11 (not JDK 8, 9, 10).

[1]  https://www.oracle.com/technetwork/java/java-se-support-roadmap.html
[2]  https://github.com/TestFX/Monocle
[3]  https://www.deps.co/guides/travis-ci-latest-java/ (+5 squashed commit)

Squashed commit:

[46a3e78] Add workaround to solve headless test failure on Windows OS

For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)

[3e4620a] build.gradle: add javafx runtime dependency for other platforms

We have added the platform specific javafx runtime dependency, so the
addressbook is able to run locally.

However, the jar file generated on one OS cannot run on other OS. The
reason is that, java SE cannot initialize the graph render correctly
without corresponding javafx dependency for that other OS.

Let's add the javafx runtime dependency for all platforms (MacOS,
Window, Linux) so the jar file generated on one OS is able to run in
other OS [1].

The order of dependency is important because it effects the way Gradle
group dependency tree.

[1]https://stackoverflow.com/questions/52653836/maven-shade-javafx-runtime-components-are-missing/52654791#52654791

[3d9a8b3] change the entry point of addressbook

After we add the javafx runtime dependency, addressbook is still unable
to run in a jdk11 environment. It gives an error of below:

    Error: JavaFX runtime components are missing, and are required to run this application

This error comes from sun.launcher.LauncherHelper in the java.base
module. The reason for this is that the Main app extends Application
and has a main method. If that is the case, the LauncherHelper will
check for the javafx.graphics module to be present as a named module.
If that module is not present, the launch is aborted. Hence, having
the JavaFX libraries as jars on the classpath is not allowed in this
case [1].

This is more like a JDK 11 problem which cannot be solved elegantly.
One simple workaround is to have a separate main class that doesn't
extend Application. Hence it doesn't do the check on javafx.graphics
module, and when the required jars are on the classpath, it works fine.

Let's add another main class to be the new entry point of addressbook
to solve this problem [2].

[1] http://mail.openjdk.java.net/pipermail/openjfx-dev/2018-June/021977.html
[2] https://stackoverflow.com/questions/52653836/maven-shade-javafx-runtime-components-are-missing/52654791#52654791

[ab48626] build.gradle: add javafx runtime dependency

JavaFX is not distributed with Oracle JDK any more from JDK11
onwards [1]. Our code uses javafx as our client platform. So it is
unable to be compiled in JDK11 anymore.

As we are moving to JDK11, let's add javafx runtime dependency to
gradle.

Meanwhile, the dependency provided are platform specific. Let's use the
SystemUtils api provided by Apache [2] to specify the version of javafx
dependency. A buildscript block is also added to declare external
dependencies used for the build script [3].

[1] https://blogs.oracle.com/java-platform-group/the-future-of-javafx-and-other-java-client-roadmap-updates
[2] http://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html
[3] https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies

[9f736ce] build.gradle: fix checkstyle plugin failure

The `checkstyle` plugin of Gradle fails in JDK11 and gives the error
below:

    Unable to create Root Module: config ...

The main reason is that, in JDK11, the `user.dir` cannot be reset by
Gradle [1]. So, checkstyle plugin is unable to locate the suppressions
file correctly.

Let's add ` config_loc` variable suggested by Gradle to solve the
problem [1].

[1] gradle/gradle#8286
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 31, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Mar 31, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 1, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 1, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 2, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 2, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
Let's use the workaround suggested [3] to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 11, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

For ui test, the FxToolkit code is firstly used in UiPartRule. For
system test, the FxToolkit code is firstly used in
SystemTestSetupHelper. Let's add the static initialization blocks to
above two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 12, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

For ui test, the FxToolkit code is firstly used in UiPartRule. For
system test, the FxToolkit code is firstly used in
SystemTestSetupHelper. Let's add the static initialization blocks to
above two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 16, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 16, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 16, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 23, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 24, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 24, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 24, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 24, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue Apr 30, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue May 3, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
fzdy1914 added a commit to fzdy1914/NUS-CS2103-Inventory-Manager that referenced this issue May 3, 2019
For headless test task, 'prism.order' property is used to choose the
graph renderer to use. Currently, we specify this property to be 'sw'.

However, this property triggers a bug of openjdk-jfx with headless
mode [1]. This property will cause Java Runtime Error for Windows OS
including AppVeyor:

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffd95b64879, pid=1476, tid=2640
    #
    # JRE version: OpenJDK Runtime Environment (11.0.1+13) (build 11.0.1+13)
    # Java VM: OpenJDK 64-Bit Server VM (11.0.1+13, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
    # Problematic frame:
    # C  [javafx_font.dll+0x4879]

This bug has been identified and will be fixed in future release [2].
There is a workaround suggested which adds static initialization
blocks to load required library before any FxToolkit code [3].

Java will initialize base classes first before classes of instance
members [4] [5]. For all GUI tests, they uses GuiUnitTest or
AddressBookSystemTest as their base class. Let's add the static
initialization blocks to these two classes to solve the problem.

[1] javafxports/openjdk-jfx#66
[2] javafxports/openjdk-jfx#66 (comment)
[3] javafxports/openjdk-jfx#66 (comment)
[4] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4
[5] https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5
grimreaper pushed a commit to PCGen/pcgen that referenced this issue Aug 4, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

8 participants