AdoptOpenJDK / jitwatch

Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.
Other
3.06k stars 437 forks source link

Pressing "Chain" button throws a NullPointerException #322

Closed cazacugmihai closed 4 years ago

cazacugmihai commented 4 years ago

Java:

java -version

openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+8)
OpenJDK 64-Bit Server VM (build 14.0.1+8, mixed mode, sharing)

Jitwatch: git clone https://github.com/AdoptOpenJDK/jitwatch.git git rev-parse --short HEAD 1563be7 mvn clean install -DskipTests=true mvn exec:java

Error:

22:29:32.694 [JavaFX Application Thread] WARN  o.a.j.c.CompilationUtil - No Task found in Compilation 14554
22:29:32.694 [JavaFX Application Thread] WARN  o.a.j.c.CompilationUtil - Compilation tags for 14554
<task_queued method="path/to/ClassA &lt;init&gt; (Lpath/to/ClassB;)V" level="3" bytes="98" count="384" stamp="1420.467" comment="tiered" hot_count="384" compile_id="14554" iicount="384"/>

<nmethod stub_offset="3408" dependencies_offset="4416" address="0x00007f82ed778b90" metadata_offset="3496" method="path/to/ClassA &lt;init&gt; (Lpath/to/ClassB;)V" level="3" count="384" stamp="1420.469" nul_chk_table_offset="4456" scopes_data_offset="3576" iicount="384" oops_offset="3488" entry="0x00007f82ed778d80" size="4472" scopes_pcs_offset="3872" insts_offset="496" bytes="98" relocation_offset="344" compile_id="14554" compiler="c1"/>

[WARNING] 
java.lang.NullPointerException
    at org.adoptopenjdk.jitwatch.ui.compilechain.CompileChainStage.buildTree (CompileChainStage.java:375)
    at org.adoptopenjdk.jitwatch.ui.compilechain.CompileChainStage.compilationChanged (CompileChainStage.java:132)
    at org.adoptopenjdk.jitwatch.ui.main.JITWatchUI.openCompileChain (JITWatchUI.java:1141)
    at org.adoptopenjdk.jitwatch.ui.triview.TriView$1.handle (TriView.java:161)
    at org.adoptopenjdk.jitwatch.ui.triview.TriView$1.handle (TriView.java:155)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent (CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent (CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl (EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent (EventUtil.java:49)
    at javafx.event.Event.fireEvent (Event.java:198)
    at javafx.scene.Node.fireEvent (Node.java:8890)
    at javafx.scene.control.Button.fire (Button.java:203)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased (ButtonBehavior.java:206)
    at com.sun.javafx.scene.control.inputmap.InputMap.handle (InputMap.java:274)
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent (CompositeEventHandler.java:218)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent (CompositeEventHandler.java:80)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent (EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent (CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent (BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent (EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl (EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent (EventUtil.java:54)
    at javafx.event.Event.fireEvent (Event.java:198)
    at javafx.scene.Scene$MouseHandler.process (Scene.java:3862)
    at javafx.scene.Scene.processMouseEvent (Scene.java:1849)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent (Scene.java:2590)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run (GlassViewEventHandler.java:409)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run (GlassViewEventHandler.java:299)
    at java.security.AccessController.doPrivileged (AccessController.java:391)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2 (GlassViewEventHandler.java:447)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock (QuantumToolkit.java:411)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent (GlassViewEventHandler.java:446)
    at com.sun.glass.ui.View.handleMouseEvent (View.java:556)
    at com.sun.glass.ui.View.notifyMouse (View.java:942)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop (Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11 (GtkApplication.java:277)
    at java.lang.Thread.run (Thread.java:832)
cazacugmihai commented 4 years ago

It was my mistake: I have used wrong paths for "Class locations" (my application has two output folders which contain the generated classes: one related to Gradle and another one generated by IDE).