<AWT Dev> debugging a regression
Semyon Sadetsky
semyon.sadetsky at oracle.com
Wed Jul 1 07:29:13 UTC 2015
Hi Pete,
I heard that you got performance issue in b68 connected to text components.
It can be caused by https://bugs.openjdk.java.net/browse/JDK-8098835.
The next patch can help:
---
old/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java
2015-06-16 20:20:42.678311800 +0300
+++
new/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java
2015-06-16 20:20:42.136257600 +0300
@@ -971,7 +971,7 @@
((AbstractDocument)doc).readLock();
}
try {
- d.width = (int) rootView.getMinimumSpan(View.X_AXIS) +
i.left + i.right;
+ d.width = (int) rootView.getMinimumSpan(View.X_AXIS) +
i.left + i.right + caretMargin;
d.height = (int) rootView.getMinimumSpan(View.Y_AXIS) +
i.top + i.bottom;
} finally {
if (doc instanceof AbstractDocument) {
@@ -996,7 +996,7 @@
}
try {
d.width = (int) Math.min((long)
rootView.getMaximumSpan(View.X_AXIS) +
- (long) i.left + (long) i.right,
Integer.MAX_VALUE);
+ (long) i.left + (long) i.right +
caretMargin, Integer.MAX_VALUE);
d.height = (int) Math.min((long)
rootView.getMaximumSpan(View.Y_AXIS) +
(long) i.top + (long) i.bottom,
Integer.MAX_VALUE);
} finally {
@@ -1027,7 +1027,7 @@
Insets insets = editor.getInsets();
alloc.x += insets.left;
alloc.y += insets.top;
- alloc.width -= insets.left + insets.right;
+ alloc.width -= insets.left + insets.right + caretMargin;
alloc.height -= insets.top + insets.bottom;
return alloc;
}
--Semyon
On 6/29/2015 10:13 AM, Vadim Pakhnushev wrote:
> I think './common/bin/hgforest bisect ...' should do the trick then.
>
> On 29.06.2015 7:30, Phil Race wrote:
>>
>> Just be aware that you will need to apply the same to each repo in
>> the JDK forest.
>> Else it will very likely not build. Eg the jdk repo must be in sync
>> with the top-level repo.
>>
>> -phil.
>>
>> On 6/28/15 5:59 PM, Pete Brunet wrote:
>>> Thanks Vadim, I'll give it a try. -Pete
>>>
>>> On 6/28/15 3:24 PM, Vadim Pakhnushev wrote:
>>>> Pete,
>>>>
>>>> Actually you should use hg bisect command to do this.
>>>> First, you mark 2 revisions you now as bad and good, like this:
>>>> hg bisect --good jdk9-b67
>>>> hg bisect --bad tip
>>>> The last command will bisect the list of changesets and update the
>>>> repo to some changeset in between.
>>>> Then you build the repo, test it and mark it as either bad or good:
>>>> hg bisect --bad
>>>> This will advance the current changeset and you test it again until
>>>> you arrive at the 'first bad' changeset.
>>>> See here for reference: https://www.selenic.com/hg/help/bisect
>>>>
>>>> Hope this helps,
>>>> Vadim
>>>>
>>>> On 28.06.2015 18:15, Pete Brunet wrote:
>>>>> Looks like I can use hg update to accomplish this, i.e. hg update
>>>>> to the
>>>>> rev that is b67 and then hg update to each possibly offending rev
>>>>> of the
>>>>> jdk repo. Sound right?
>>>>>
>>>>> On 6/26/15 4:13 PM, Pete Brunet wrote:
>>>>>> Hi, I found a problem on b68 and there are a half dozen possible
>>>>>> changesets that could be responsible. What is the best way to do
>>>>>> the
>>>>>> process of elimination. It seems like the right approach would
>>>>>> be to
>>>>>> start with b67 and then add changesets one at a time until the
>>>>>> problem
>>>>>> surfaces. Is that right or is there a better way?
>>>>>>
>>>>>> Starting with a fresh current clone what are the steps to strip
>>>>>> back to
>>>>>> b67 and then to add changesets?
>>>>>>
>>>>>> This will be in the jdk branch of the forest.
>>>>>>
>>>>>> Thanks, Pete
>>
>
More information about the awt-dev
mailing list