JDK-8163580 : Cannot get Monitor Cache Dump in HSDB
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc-agent
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-08-10
  • Updated: 2018-01-17
  • Resolved: 2016-08-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b133Fixed
Related Reports
Relates :  
Description
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.