JDK-6242587 : HPROF: HAT complains with Warning! Illegal boolean value read
  • Type: Bug
  • Component: tools
  • Sub-Component: hprof
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2005-03-18
  • Updated: 2010-04-02
  • Resolved: 2005-09-30
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
6 b55Fixed
Related Reports
Relates :  
Relates :  
Description
java -agentlib:hprof=format=b,logflags=0x4,file=dump.hprof -jar /opt/java/jdk1.5.0/demo/jfc/SwingSet2/SwingSet2.jar

wait til it's done, then exit it.

Then run hat:

~/hat/bin/hat dump.hprof

and you get a gazillon warning messages:

Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read
Warning!  Illegal boolean value read





###@###.### 2005-03-18 01:07:45 GMT

Comments
SUGGESTED FIX ######### File: ./hprof_util.c ######### (cd . && sccs diffs -C -w -s -b hprof_util.c) ------- hprof_util.c ------- *** /tmp/sccs.NHaaGO Thu Sep 15 16:15:58 2005 --- hprof_util.c Thu Sep 15 16:11:52 2005 *************** *** 1087,1092 **** --- 1087,1100 ---- } } + /* Class or Interface, do implemented interfaces recursively */ + getImplementedInterfaces(klass, &n_interfaces, &interfaces); + for ( i = 0 ; i < n_interfaces ; i++ ) { + add_class_fields(env, get_cnum(env, interfaces[i]), interfaces[i], + field_list, class_list); + } + jvmtiDeallocate(interfaces); + /* Begin graph traversal, go up super chain recursively */ if ( !isInterface(klass) ) { jclass super_klass; *************** *** 1098,1110 **** } } - /* Class or Interface, do implemented interfaces recursively */ - getImplementedInterfaces(klass, &n_interfaces, &interfaces); - for ( i = 0 ; i < n_interfaces ; i++ ) { - add_class_fields(env, get_cnum(env, interfaces[i]), interfaces[i], - field_list, class_list); - } - jvmtiDeallocate(interfaces); /* Only now we add klass to list so we don't repeat it later */ stack_push(class_list, &klass); --- 1106,1111 ---- *** (#1 of 1): 2005-09-15 16:19:41 PDT ###@###.###
20-09-2005

EVALUATION hprof is calculating the 'all field list. incorrectly, The interfaces must be processed before the super class.
20-09-2005

EVALUATION This bug has something to do with the field_index issues, tracking it down now as part of the adding primitive field values into hprof (4965057).
15-09-2005