JDK-6523134 : field "_layout_helper" in type Klass is not of C integer type, but instead of type jint
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_9
  • CPU: sparc
  • Submitted: 2007-02-08
  • Updated: 2010-04-03
  • Resolved: 2007-02-17
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 6 JDK 7 Other
6u4Fixed 7Fixed hs10Fixed
Description
We have a lot of new failed test nsk/sajdi:

[2007-02-08T05:21:41.28] Caused by: sun.jvm.hotspot.types.WrongTypeException: field "_layout_helper" in type Klass is not of C integer type, but instead of type jint
[2007-02-08T05:21:46.44]     at sun.jvm.hotspot.types.basic.BasicType.getCIntegerField(BasicType.java:242)
[2007-02-08T05:24:37.38]     at sun.jvm.hotspot.types.basic.BasicType.getCIntegerField(BasicType.java:242)
[2007-02-08T05:24:42.18]     at sun.jvm.hotspot.oops.Klass.initialize(Klass.java:38)
[2007-02-08T05:24:42.18]     at sun.jvm.hotspot.oops.Klass.access$000(Klass.java:16)
[2007-02-08T05:24:42.18]     at sun.jvm.hotspot.oops.Klass$1.update(Klass.java:20)
[2007-02-08T05:24:42.18]     at sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver(VM.java:330)
[2007-02-08T05:24:42.18]     at sun.jvm.hotspot.oops.Klass.<clinit>(Klass.java:18)

Comments
SUGGESTED FIX Additional fix: Add Klass::_lh_instance_slow_path_bit field definition into vmStructs.cpp. Webrev: http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070209122604.kvn.6523134/workspace/webrevs/webrev-2007.02.09/index.html
09-02-2007

SUGGESTED FIX Use IntField class for _layout_helper field. Webrev: http://prt-web.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2007/20070208161806.kvn.6523134/workspace/webrevs/webrev-2007.02.08/index.html
09-02-2007

EVALUATION In agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java layoutHelper = new CIntField(type.getCIntegerField("_layout_helper"), Oop.getHeaderSize()); should be layoutHelper = new CIntField(type.getJIntField("_layout_helper"), Oop.getHeaderSize());
08-02-2007