RFR: 6510914: JScrollBar.getMinimumSize() breaks the contract of JComponent.setMinimumSize() [v2]

Phil Race prr at openjdk.org
Tue Oct 10 22:22:53 UTC 2023


On Thu, 24 Aug 2023 07:46:07 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>> javadoc contract for JComponent.setMinimumSize(Dimension) states:
>> 
>> "Sets the minimum size of this component to a constant value. Subsequent calls to getMinimumSize will always return this value..."
>> 
>> However, JScrollBar overrides getMinimumSize() and breaks this contract - it always returns a minimum size derived from the preferred size even if you have previously called setMinimumSize()
>> 
>> Fix is made to check if mnimumSize is set and if so, honour it..
>
> Prasanta Sadhukhan has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - copyright year
>  - Fix maximumSize, test

src/java.desktop/share/classes/javax/swing/JScrollBar.java line 765:

> 763:         if (isMinimumSizeSet()) {
> 764:             return super.getMinimumSize();
> 765:         }

This looks like it has potential to cause many compatibility problems.
I think it better to simply update the Jscrollbar spec on these methods to reflect what JScrollbar does.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15325#discussion_r1353494090


More information about the client-libs-dev mailing list