Relates :
|
When I chose "Monitor Cache Dump" menu in HSDB, I saw an Exception as below: ------------ Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError at sun.jvm.hotspot.ui.MonitorCacheDumpPanel.dumpOn(jdk.hotspot.agent@9-internal/MonitorCacheDumpPanel.java:92) at sun.jvm.hotspot.ui.MonitorCacheDumpPanel.<init>(jdk.hotspot.agent@9-internal/MonitorCacheDumpPanel.java:59) at sun.jvm.hotspot.HSDB.showMonitorCacheDumpPanel(jdk.hotspot.agent@9-internal/HSDB.java:1534) at sun.jvm.hotspot.HSDB.access$1400(jdk.hotspot.agent@9-internal/HSDB.java:51) at sun.jvm.hotspot.HSDB$17.actionPerformed(jdk.hotspot.agent@9-internal/HSDB.java:343) at javax.swing.AbstractButton.fireActionPerformed(java.desktop@9-internal/AbstractButton.java:1967) at javax.swing.AbstractButton$Handler.actionPerformed(java.desktop@9-internal/AbstractButton.java:2308) at javax.swing.DefaultButtonModel.fireActionPerformed(java.desktop@9-internal/DefaultButtonModel.java:404) at javax.swing.DefaultButtonModel.setPressed(java.desktop@9-internal/DefaultButtonModel.java:261) at javax.swing.AbstractButton.doClick(java.desktop@9-internal/AbstractButton.java:369) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(java.desktop@9-internal/BasicMenuItemUI.java:978) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(java.desktop@9-internal/BasicMenuItemUI.java:1022) at java.awt.Component.processMouseEvent(java.desktop@9-internal/Component.java:6601) at javax.swing.JComponent.processMouseEvent(java.desktop@9-internal/JComponent.java:3322) at java.awt.Component.processEvent(java.desktop@9-internal/Component.java:6366) at java.awt.Container.processEvent(java.desktop@9-internal/Container.java:2258) at java.awt.Component.dispatchEventImpl(java.desktop@9-internal/Component.java:4985) at java.awt.Container.dispatchEventImpl(java.desktop@9-internal/Container.java:2316) at java.awt.Component.dispatchEvent(java.desktop@9-internal/Component.java:4817) at java.awt.LightweightDispatcher.retargetMouseEvent(java.desktop@9-internal/Container.java:4895) at java.awt.LightweightDispatcher.processMouseEvent(java.desktop@9-internal/Container.java:4532) at java.awt.LightweightDispatcher.dispatchEvent(java.desktop@9-internal/Container.java:4473) at java.awt.Container.dispatchEventImpl(java.desktop@9-internal/Container.java:2302) at java.awt.Window.dispatchEventImpl(java.desktop@9-internal/Window.java:2754) at java.awt.Component.dispatchEvent(java.desktop@9-internal/Component.java:4817) at java.awt.EventQueue.dispatchEventImpl(java.desktop@9-internal/EventQueue.java:761) at java.awt.EventQueue.access$500(java.desktop@9-internal/EventQueue.java:97) at java.awt.EventQueue$3.run(java.desktop@9-internal/EventQueue.java:712) at java.awt.EventQueue$3.run(java.desktop@9-internal/EventQueue.java:706) at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@9-internal/ProtectionDomain.java:77) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@9-internal/ProtectionDomain.java:87) at java.awt.EventQueue$4.run(java.desktop@9-internal/EventQueue.java:734) at java.awt.EventQueue$4.run(java.desktop@9-internal/EventQueue.java:732) at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.base@9-internal/ProtectionDomain.java:77) at java.awt.EventQueue.dispatchEvent(java.desktop@9-internal/EventQueue.java:731) at java.awt.EventDispatchThread.pumpOneEventForFilters(java.desktop@9-internal/EventDispatchThread.java:199) at java.awt.EventDispatchThread.pumpEventsForFilter(java.desktop@9-internal/EventDispatchThread.java:124) at java.awt.EventDispatchThread.pumpEventsForHierarchy(java.desktop@9-internal/EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(java.desktop@9-internal/EventDispatchThread.java:109) at java.awt.EventDispatchThread.pumpEvents(java.desktop@9-internal/EventDispatchThread.java:101) at java.awt.EventDispatchThread.run(java.desktop@9-internal/EventDispatchThread.java:90) Caused by: java.lang.ArithmeticException: / by zero at sun.jvm.hotspot.runtime.ObjectSynchronizer.initialize(jdk.hotspot.agent@9-internal/ObjectSynchronizer.java:55) at sun.jvm.hotspot.runtime.ObjectSynchronizer.access$000(jdk.hotspot.agent@9-internal/ObjectSynchronizer.java:34) at sun.jvm.hotspot.runtime.ObjectSynchronizer$1.update(jdk.hotspot.agent@9-internal/ObjectSynchronizer.java:38) at sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver(jdk.hotspot.agent@9-internal/VM.java:449) at sun.jvm.hotspot.runtime.ObjectSynchronizer.<clinit>(jdk.hotspot.agent@9-internal/ObjectSynchronizer.java:36) ... 43 more ------------ ObjectSynchronizer finds DEFAULT_CACHE_LINE_SIZE value from VMStructs, however, it is not contained. This value is added by JDK-8049737. DEFAULT_CACHE_LINE_SIZE is macro. When we set macro value to VMStructs, we have to use declare_preprocessor_constant macro. However this change uses declare_constant macro. It is the cause of this exception.