On 31/05/16 14:03, Prem Balakrishnan wrote:
Hi Alexander,
Please review the updated patch.
http://cr.openjdk.java.net/~pkbalakr/8152419/webrev.01/
<http://cr.openjdk.java.net/%7Epkbalakr/8152419/webrev.01/>
Math.max(getWidth() - this.insets.left - this.insets.right, getWidth())
can give incorrect result for the case where a component size is 50x50
and insets are [10, 10, 10 , 10]. max(50-10-10, 50) = 50 but the
expected results is 30.
The correct formula should be max(width-insets.left-insets.right,
minWidthValue) where minWidthValue is zero or some specified minimal value.
The DiagramComponent.paintComponent() code tries to create an array of
size width*height and BufferedImage with component size. In this case it
may be better just to check that the component size minus insets is
greater than zero. If it is less or equal to zero we can just return
from the paintComponent() method.
Thanks,
Alexandr.
Regards,
Prem
*From:*Alexander Scherbatiy
*Sent:* Monday, May 30, 2016 9:42 PM
*To:* Prem Balakrishnan; Sergey Bylokhov; swing-dev@openjdk.java.net
*Subject:* Re: Review Request JDK-8152419 JColorChooser throws Exception
On 30/05/16 12:39, Prem Balakrishnan wrote:
Hi*,*
Please review fix for JDK9,
*Bug:*https://bugs.openjdk.java.net/browse/JDK-8152419
*Webrev:*http://cr.openjdk.java.net/~pkbalakr/8152419/webrev.00/
<http://cr.openjdk.java.net/%7Epkbalakr/8152419/webrev.00/>
*Issue:*
JColorChooser throws Exception(NegativeArraySizeException)
*Fix:*
Absolute value is passed while creating array.
If component size is 10x10 and insets are [30, 30, 30, 30] the
absolute value of the difference will be abs(10 - 30 - 30)=50.
It seems that the right component size should be zero or some
minimal values which is max(width-insets.left-insets.right,
minWidthValue).
Thanks,
Alexandr.
Regards,
Prem