Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6471865
Votes 3
Synopsis Unable to create a modelmbean.DescriptorSupport with debugging ON
Category jmx:classes
Reported Against
Release Fixed 6u2(b01)
State 10-Fix Delivered, bug
Priority: 3-Medium
Related Bugs 6529536 , 6574488 , 6675768
Submit Date 18-SEP-2006
Description
The statement "new DescriptorSupport()" produces the following stack when the JMX debugging is used.
Tried JDK 6 b59g (aka Beta), b86 (aka Beta2) and b99.
All other constructors fail equally.
Works fine without any debugging.

Exception in thread "main" java.lang.IllegalArgumentException: Null Map
        at javax.management.ImmutableDescriptor.<init>(ImmutableDescriptor.java:85)
        at javax.management.modelmbean.DescriptorSupport.hashCode(DescriptorSupport.java:777)
        at javax.management.modelmbean.DescriptorSupport.debug(DescriptorSupport.java:1260)
        at javax.management.modelmbean.DescriptorSupport.debug(DescriptorSupport.java:1266)
        at javax.management.modelmbean.DescriptorSupport.<init>(DescriptorSupport.java:160)
        at defect.Main.main(Main.java:29)
Posted Date : 2006-09-18 13:19:48.0
Work Around
N/A
Evaluation
The problem is that the debug calls within the constructors end up using the partially-constructed state of the object.  In particular, the descriptorMap field is still null at this stage, even though a constructed DescriptorSupport never has a null descriptorMap.

The simplest solution would be to remove these debug statements entirely.  I do not think it is useful to trace the creation of descriptors.  Possibly the constructors that already include some fields could continue to be traced, but the debug call should be after the call to init(whatever).
Posted Date : 2006-09-18 13:53:51.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang