4

I have a problem with JavaFX desktop application, specifically with 3d rendering functionalities. Every time I try to build and launch JavaFX application, JVM crshes and I get error similiar to following one:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000000, pid=8440, tid=9008
#
# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# D:\apps\desktop\hs_err_pid8440.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Entire log: http://pastebin.com/FC6NfVjF

I tried different java version (1.7_51, 1.7_60, as well as 1.8_5), I tried updating graphic card drivers. Some project does launch, but as soon as I want to display some 'more complicated' effects (i.e. hovering a button), I get the same exception.

Judging from the stacktrace, I believe it has something to do with directX.

j  com.sun.prism.d3d.D3DVertexBuffer.nDrawIndexedQuads(J[F[BI)I+0
j  com.sun.prism.d3d.D3DVertexBuffer.drawQuads(I)V+13
j  com.sun.prism.impl.VertexBuffer.flush()V+12

I'm working on machine with Windows 8.1 and DirectX 11. Probably it won't help, but here I'm also pasting DirectX Diagnostic Tool log: http://pastebin.com/giN4AFv4

Thanks for any input.

ember
  • 43
  • 1
  • 5
  • 1
    You should try to create an [MCVE](http://stackoverflow.com/help/mcve). With just the logs it's very unlikely that someone will be able to help you. – Mansueli Jul 14 '14 at 19:44
  • What I can find from the crash log is that the applicated has crashed inside `C:\Windows\system32\igdumdim64.dll` library (a part of Intel HD Graphics Driver) at offset 0xe5fe9. I can't name the exact function without having this particular library, but this would hardly help anyway. There is a Windows-specific Java flag `-XX:+CreateMinidumpOnCrash` that helps to produce a more meaningful crash dump for analysis. – apangin Jul 15 '14 at 00:34
  • 1
    Ok, thanks to **apangin** I found a solution. It turned out that acer put some wrong Intel HD drivers, that are not entirely compatible with my HD4400. All I had to do was to remove the old HD drivers and install latest version specifically for my CPU downloaded from Intel site. **apangin** - you can answer it here, I will vote for that. **@Kyllopardiun** - what would be MCV example here ? there weren't any code examples I could paste - everthing was in the logs. – ember Jul 15 '14 at 16:40
  • @ember I am glad that you've solved the problem. I've copied my comment as an answer with a brief explanation how to read the crash log. – apangin Jul 16 '14 at 03:28

1 Answers1

12

The crash has happened inside C:\Windows\system32\igdumdim64.dll at offset 0xe5fe9.
This library is a part of Intel HD Graphics Driver.

Here is a quick tip how to find this from the crash log.

# Problematic frame:
# C  0x0000000000000000

Zero instruction pointer means there was an indirect call, and the target address happened to be NULL. The return address for this call is likely to be on the top of stack.

Top of Stack: (sp=0x000000000ef4d398)
0x000000000ef4d398:   00007ffb308b5fe9 000000000e979800

00007ffb308b5fe9 is the saved return address. Let's find the range it belongs to.

Dynamic libraries:
...
0x00007ffb307d0000 - 0x00007ffb31019000      C:\Windows\system32\igdumdim64.dll

Find the offset in the library by subtracting the base address:
0x00007ffb308b5fe9 - 0x00007ffb307d0000 = 0xe5fe9

Next, having the dll in hand, we can disassemble it and figure out the exact function at the given offset.

P.S.
There is also a Windows-specific Java flag -XX:+CreateMinidumpOnCrash that helps to produce a more meaningful crash dump for analysis.

apangin
  • 92,924
  • 10
  • 193
  • 247