<Beans Dev> [11] Review Request: 8196373 Introspector does not see overridden generic setter method
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Sun May 27 01:13:01 UTC 2018
Hello.
The fix updated after discussion:
http://cr.openjdk.java.net/~serb/8196373/webrev.01
The type of the property will be set to the type of setXX() only when
getXX() is missing, otherwise the type of getXX() will be used.
On 30/04/2018 09:02, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for jdk11.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8196373
> Webrev: http://cr.openjdk.java.net/~serb/8196373/webrev.00
>
> One more places which depends from the order of methods is fixed.
> The bug is occurred in the next code example:
> ===============================
> static class Parent<T> {
> public final T getValue()
> protected void setValue(T value)
> }
> static class ChildS extends Parent<String> {
> @Override
> public void setValue(String value)
> }
> ===============================
>
> The problem is that javac will generate the "synthetic bridge" method
> setValue(Ljava/lang/Object) in the ChildS class to support such
> generics. This method may be placed before/after the real
> setValue(String value) method.
>
> PropertyInfo class which generate the property according set/get methods
> for one particular class depends on the order of these methods, it does
> not update the type of the property when the preferred "write" method is
> found. This is why the bug is reproduced when generic type is String(the
> "String" method is placed after setValue(Object)) and is not reproduced
> when the type is ArithmeticException(the "ArithmeticException" method is
> placed before setValue(Object)).
>
> Three tests were added:
> - OverriddenGenericSetter.java - to check an example above and prove
> that the bug is fixed.
> - OverriddenGenericGetter.java - to check that the similar case for
> "getter" works properly
> - OverloadedSetter.java - to check some unspecified but existed
> behavior, it can be used to check our implementation for accidental changes
>
> Any suggestions are welcome.
>
--
Best regards, Sergey.
More information about the beans-dev
mailing list