My point is that your argument is invalid. There is no guarantee in java that x.equals(new SomeClass(x).toString()) is ever true.
It is for String :-)
My point here is that preserving the supplied name is useful, the order is irrelevant to the implementation so there is no reason not to preserve it.
For example, the current approach means that the example names from the JSR-77 spec would be displayed as they are specified; using the canonical form of ObjectName would rearrange them. The order of the parts is not meaningful to the implementation but it sure makes the examples easier to understand.
77 names are generated in the deployment code using unordered maps. IMNHO, a console respecting 77 should sort the 77 names into a tree based on the hierarchy laid out in the spec.
77 names are one use case, there are likely to be others which the console does not understand. There is no reason here to discard the ordering provided by the user.
-- Jeremy
