<Swing Dev> RFR 8250852: Address reliance on default constructors in the javax.swing.plaf.basic APIs

Philip Race philip.race at oracle.com
Mon Aug 17 21:58:49 UTC 2020


My preference is that the abstract classes all use the same verbiage Joe 
used
for such cases in the java.base module.  i.e just "Constructor for 
subclasses to call. "

It may not be the optimal text but it is certainly better than 
"Constructs for subclasses to call".

-phil.11

On 8/17/20, 2:47 PM, Alexey Ivanov wrote:
> On 17/08/2020 22:10, Alexey Ivanov wrote:
>> Hi Prasanta, Sergey,
>>
>> On 17/08/2020 21:19, Sergey Bylokhov wrote:
>>> Hi, Prasanta.
>>>
>>> There is a small typo, see dots: "Constructs for subclasses to call.."
>>
>> Shall it be "Constructs a {@code BasicLookAndFeel} for subclasses to 
>> call."?
>> This way it is consistent with other added constructors and specifies 
>> the object.
>
> I see there's a discussion on jdk-dev about the proposed text:
> https://mail.openjdk.java.net/pipermail/jdk-dev/2020-August/004613.html
>
> There's a precedent of using such a description:
> "Constructor for subclasses to call."
>
> https://mail.openjdk.java.net/pipermail/jdk-dev/2020-August/004614.html
> https://cr.openjdk.java.net/~darcy/8250244.0/src/java.base/share/classes/java/net/SocketAddress.java.frames.html 
>
>
> And it's fine.
>
> Yet "Constructs for subclasses to call.." seems incorrect, 
> ungrammatical, as if something missing and that something is the 
> object for the verb "to construct".
>
> Should it be replaced with: "Constructor for subclasses to call."?
>
>
> Regards,
> Alexey
>>
>>> Other than that looks fine.
>>>
>>> On 15.08.2020 05:30, Prasanta Sadhukhan wrote:
>>>> Hi All,
>>>>
>>>> Please review a fix for issue where it was seen that several 
>>>> classes rely on default constructors as part of their public API.
>>>>
>>>> It's to be noted that "A no-arg public constructor is generated by 
>>>> the compiler for a class if it does not declare an explicit 
>>>> constructor. While convenient, this is inappropriate for many kinds 
>>>> of formal classes, both because the constructor will have no 
>>>> javadoc and because the constructor may be unintended."
>>>>
>>>> For the JDK, classes intended to be used outside of the JDK, public 
>>>> classes in exported packages, should not rely on default constructors.
>>>>
>>>> Proposed fix is to create protected constructors to the public 
>>>> abstract classes for javax.swing.plaf.basic module (as one part of 
>>>> overalll java.desktop change)
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8250852
>>>>
>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8250852/webrev.0/
>>>>
>>>> CSR: https://bugs.openjdk.java.net/browse/JDK-8251855
>>>>
>>>> Regards
>>>> Prasanta
>>>>
>>>
>>>
>>
>


More information about the swing-dev mailing list