jmx-dev RFR 8139870: sun.management.LazyCompositeData.isTypeMatched() fails for composite types with items of ArrayType
Daniel Fuchs
daniel.fuchs at oracle.com
Mon Oct 19 12:40:31 UTC 2015
Hi Jaroslav,
This - and the cleanup - look good to me, but it would
be nicer if it was accompanied by a unit test :-)
best regards,
-- daniel
On 19/10/15 13:37, Jaroslav Bachorik wrote:
> Please, review the following change
>
> Issue : https://bugs.openjdk.java.net/browse/JDK-8139870
> Webrev: http://cr.openjdk.java.net/~jbachorik/8139870/webrev.00
>
> sun.management.LazyCompositeData.isTypeMatched() method is used to
> compare two composite types with the backward compatibility in mind. The
> idea is that when we have two types (type1, type2) type1 is matched by
> type2 when and only when type2 contains all the items of type1 and their
> types are in turn matching the item types from type1, recursively.
>
> However, this method fails to account for ArrayType type and instead of
> calling isTypeMatched() recursively on the array type it performs plain
> Object.equals(). This will cause problems when one tries to safely
> evolve (only adding items) composite types referred through ArrayType
> items.
>
> The patch adds the missing functionality.
>
> In http://cr.openjdk.java.net/~jbachorik/8139870/webrev.00/cleanup there
> is a followup webrev of code warnings cleanup for s.m.LazyComponentData.
>
> Thanks,
>
> -JB-
More information about the jmx-dev
mailing list