On Tue, 22 Sep 2020 14:01:04 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

>> Please review a fix for issue where it was seen that several classes in plaf 
>> package 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 add explicit public no-arg constructors for public 
>> classes and protected no-arg constructor for
>> protected classes for javax.swing module
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Modified construct javadic pattern

Marked as reviewed by prr (Reviewer).

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java line 
737:

> 735:     protected class InvocationMouseHandler extends MouseAdapter {
> 736:         /**
> 737:          * Constructor for subclasses to call.

IMO this wording is not right here. This class is concrete isn't it ? So any 
code in this package can create one - not
just a subclass.

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java 
line 651:

> 649:         /**
> 650:          * Constructs a {@code InternalFramePropertyChangeListener}.
> 651:          */

a -> an

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java 
line 673:

> 671:      * Constructs a {@code InternalFrameLayout}.
> 672:      */
> 673:     public InternalFrameLayout() {}

a -> an

-------------

PR: https://git.openjdk.java.net/jdk/pull/251

Reply via email to