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

Prasanta Sadhukhan psadhukhan at openjdk.org
Wed Sep 27 04:54:20 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

I dont see any visual change with this fix and it solves `get/setMinimumSize` contract. 
However,
I think the suggestion is to update the javadoc for JScrollBar but it does not have `setMinimumSize/setMaximumSize` method which has the contract in `JComponent.setMinimumSize/setMaximumSize` 
" Subsequent calls to getMaximumSize will always return this value;"

so not sure where to update the spec..in the JScrollBar class top summary or in `getMinimumSize/getMaximumSize` but since the contract is in set method, not sure if it will be considered if updated in get methods..

@aivanov-jdk @prrace Please provide your opinion..

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

PR Comment: https://git.openjdk.org/jdk/pull/15325#issuecomment-1736698607


More information about the client-libs-dev mailing list