This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 35083

Summary: Value from combobox isn't set when combobox oversides NB main window
Product: platform Reporter: Lukas Hasik <lhasik>
Component: ExplorerAssignee: _ tboudreau <tboudreau>
Status: VERIFIED FIXED    
Severity: blocker CC: dmladek, jbecicka, mentlicher, mmirilovic
Priority: P2    
Version: 3.x   
Hardware: PC   
OS: Linux   
Issue Type: DEFECT Exception Reporter:
Bug Depends on: 31896    
Bug Blocks:    
Attachments: combo overreaching window
list is wider then the properties window and thus it is blinking when mouse is over it
list is longer then the properties window (just before attemt to select something from the list by mouse)
list is longer then the properties window and thus it is blinking when mouse is over it
Patch to force heavyweight popups on Linux
console output
Zipped ide.logs The latest start is with -J-Dnetbeans.ps.combolog2=true -J-Dnetbeans.ps.logComboPaints=true

Description Lukas Hasik 2003-07-23 10:51:14 UTC
nb40dev - 200307230100, jdk1.4.1_02, MDI&SDI

Try set some value in combobox which overreach
window - e.g. [Executor] - when you choose value
from combo nothing happens = value isn't changed.

Workaround: use customizer [...] or resize window
to combo don't overreach window.
Comment 1 Lukas Hasik 2003-07-23 10:58:06 UTC
Created attachment 11078 [details]
combo overreaching window
Comment 2 dmladek 2003-07-23 16:35:50 UTC
IMHO, when I tried to follow Lukas's workaround
it is impossible to select other value from drop-down list by clicking
on it by mouse.
the only wrkrnd for me is tu choose it by keyboard...

It's hard to change properties and  thus I thing is more serrious then P3.
Changing priority to P2
Comment 3 dmladek 2003-07-23 16:36:28 UTC
P3->P2
Comment 4 _ tboudreau 2003-07-28 14:22:36 UTC
Very strange.  I do use a popup subclass, but they only
thing it does is override a method to improve the sizing
logic in the case the popup is too big - it should have
no effect on the value whatsoever.  I'm wondering if this
will turn out to be a Swing bug.
Comment 5 _ tboudreau 2003-07-29 00:22:24 UTC
I cannot reproduce this on Windows XP at all.  Can you give
some more details on how to reproduce?  I tried the Executor
property of some Java classes, as well as others.  They all
worked correctly.
Comment 6 Lukas Hasik 2003-07-29 14:15:34 UTC
I tryed new dev build from 07/28 and it works.

Closing as works for me. 

But it definetly didn't work in 07/23 build and we tryed it at least
on two platforms - w2k, RH

Dan, could please check it on Linux ? and then reopen/verify, thanks.
Comment 7 dmladek 2003-07-29 15:30:45 UTC
OK Lukasi,

I've take todays NBdev build #2003-07-28-0100 and tested on my RH9,
using jdk1.4.2-b28 and I must to reopne it.

I could comfirm that value is set to the value you choose,
but it is still hard to select one of the drop-down-list is wider or
longer then are borders of properties window...

See the 2 others snapshots. The list is blinking while you move over
it with mouse cursor.
The only way how to choose a value is use the keyboard...
Comment 8 dmladek 2003-07-29 15:43:09 UTC
Created attachment 11172 [details]
list is wider then the properties window and thus it is blinking when mouse is over it
Comment 9 dmladek 2003-07-29 15:44:33 UTC
Created attachment 11173 [details]
list is longer then the properties window (just before attemt to select something from the list by mouse)
Comment 10 dmladek 2003-07-29 15:45:13 UTC
Created attachment 11174 [details]
list is longer then the properties window and thus it is blinking when mouse is over it
Comment 11 dmladek 2003-07-29 15:53:53 UTC
Finaly I made 2 snapshots 'cause on 2 of them you see an attempt of
selection a value from the list.... but list is blinking and it is
impossible to choose something.

On the midle one you see list in peace and quiet (mouse is not
pointing on it)... just for an idea what I see on linux...
Comment 12 _ tboudreau 2003-07-29 17:28:08 UTC
Blinking?

What window manager are you using?  Looks like a bug in the
JDK code that decides whether a lighweight or heavyweight
popup should be used.

I'm on vacation and can't diagnose it from home (only XP 
installed).  I will attach a patch to force heavyweight
popups under Linux.  Daniel, please try it out - if it 
solves the problem, then we will have diagnosed it.

Also if you could try it unpatched on a different window
manager, that would help a lot in figuring out if it's a
AWT vs. Window manager war or what.
Comment 13 _ tboudreau 2003-07-29 17:29:11 UTC
Created attachment 11176 [details]
Patch to force heavyweight popups on Linux
Comment 14 dmladek 2003-07-30 16:07:13 UTC
Hello,
I'm using KDE 3.2.1 as my default WinManager.
I'll try it in Gnome (without patch and let you know).

Please, be patient 'cause I must done other stuffs first and
also I'm leaving for my holidays.
Comment 15 dmladek 2003-07-30 19:00:59 UTC
Well, I tried apply your patch now, but I'm not able to do it:-(
please, tell me how.

I tried it from NB to patch the ComboInplaceEditor.java where I got a
message:

"No differences found in file combodiff.diff"

Please Martin, if you could look at this and tell me if that's correct
or what's wrong with it.


And also I tried from cmdline:
$> patch -i ./combodiff.diff 
~/cvs/IDE/TRUNK/nb_all/openide/src/org/openide/explorer/propertysheet/ComboInplaceEditor.java
patch: **** Only garbage was found in the patch input.


FYI: I've updated ComboInplaceEditor.java (trunk) and I have r:1.2
after update.
Comment 16 Martin Entlicher 2003-07-31 13:24:54 UTC
This is diff of a format of an 'ed' script. NetBeans patch algorithm
can not handle that. Tim, please submit a contextual diff instead.
Comment 17 dmladek 2003-08-01 10:18:48 UTC
I tested the behaviour under default Gnome on RH9.
The behaviour is good. No blinking.
Under my KDE 3.2.1(I upgrated the newest from kde.org)
there is still problem even with applied patch.

I've copied the patch after line 60 of ComboInplaceEditor.java
and it was compilable. So I created pbinary patch for thi purpose and
I didn't notice any improvement under KDE :-(

Comment 18 _ tboudreau 2003-08-02 12:03:02 UTC
Ugh.

Any ideas for how to figure out what window manager someone
is running under Linux?  If not, this may need to be closed.

I could force the heavyweight popups for Linux, since you say
it works for Gnome (was that what you had the problem on?),
but since heavyweight popups are less efficient, it would 
be better to only do this where it's really needed (maybe
a startup line switch?).

But I have no idea what to do about this for KDE, if 
heavyweight popups don't fix it.  I'm guessing that what
is happening is something like:
 1 Popup is created lightweight
 2 Popup won't fit; recreate it heavyweight
 3 Size checked on mouse move; recreate it lightweight
 4 Popup won't fit, goto 2

May be an article of the client property that tells the
combo box that it is a table cell editor?
Comment 19 Lukas Hasik 2003-08-06 10:06:07 UTC
nb40dev [200308060100] jdk 1.4.2
changing Platform, OS.
It works fine on Windows, Solaris
Comment 20 _ tboudreau 2003-08-11 15:01:39 UTC
Can you double check this problem with a recent official release of
KDE?  If yours is a build from source, it may be their bug, not 
ours - it sounds like it probably is.
Comment 21 _ tboudreau 2003-08-11 15:36:29 UTC
I've committed the patch to the trunk.  To turn it on, run with

-J-Dnetbeans.ps.combohack=true

That should make it easier to test.  

I also patched the custom
look and feel class for the combo box to log resizes of the combo
popup and print a stack trace.  That should provide all of the
diagnostic feedback we need.  To turn logging on, run with

-J-Dnetbeans.ps.combolog=true

Try it with both switches on the trunk, and if you can still
reproduce the problem, send me the console output with stack
traces from when the editor is flashing.
Comment 22 dmladek 2003-08-12 14:47:22 UTC
Thanks Time for the patch (now, part of the build).

I was on my vacation, so I couldn't answer you:-(

--- to KDE:
>Can you double check this problem with a recent official >release of KDE?
Sorry,  I made typo in my version of KDE. It should be 3.1.2!!! (not
3.2.1). BTW:the latest official release of KDE is 3.1.3 (I'll try to
upgrade to this)

>If yours is a build from source, it may be their bug, not 
>ours - it sounds like it probably is.
IMHO: Doesn't make sence that building from sources points to their bug.
But, I installed the RPM packages for RH9.
---


so I will test it and let you know the result...
Comment 23 _ tboudreau 2003-08-12 16:58:35 UTC
True, but window manager vs. JDK wars are terribly hard to diagnose.
I recall NetBeans having completely different (but equally unusable)
problems when using FVWM, depending on whether I used the Sun 1.3
or IBM 1.3 - because they were using different graphics calls.

Anyway, if it seems to be KDE specific, we may be able to work
around it somehow, or at least file a bug with them or the JDK.
Comment 24 dmladek 2003-08-13 11:27:12 UTC
yap, you're right....

Anyway, I successfully upgraded to the latest official KDE release
3.1.3 and tried with NB40-dev #200308120100

I executed ide with this command:
./runide.sh -J-Dnetbeans.ps.combohack=true -J-Dnetbeans.ps.combolog=true

but I didn't register any atypical outputs to console... :-/
For sureness I'm attaching everything from my console printed till I
shutdown the ide...
I guess there's no interesting output for you...

Did I wrote bad command? Are you sure you committed the patch to the
trunk=NBdev40?
Comment 25 dmladek 2003-08-13 12:41:54 UTC
Created attachment 11298 [details]
console output
Comment 26 dmladek 2003-08-13 12:43:25 UTC
and the behaviour is still the same: blinking if it's overreach the
borders of a property window
Comment 27 dmladek 2003-09-02 15:38:11 UTC
I must admit I can't reproduce it now on todays build with "original"
settings (used day by day till now) and even on #2003-07-28-0100 with
new userdir on which I reported this blinking dropdown list too...

I can't explain it, and I must make big excuse to Tim for spending so
much his time. Sorry Tim, but I didn't lie, why should I did?

Marking as Worksforme
Comment 28 dmladek 2003-09-02 15:39:20 UTC
just verifying
Comment 29 Martin Entlicher 2003-09-17 11:47:17 UTC
Well, I'm able to reproduce the bug on dev build #200309170100 on
Solaris 8. Come by to see it in action. It blinks very quickly when
the popup overreach the main window, it's not possible to select the
desired value.
Comment 30 _ tboudreau 2003-09-17 17:36:51 UTC
I can't come look because I'm in California...

Martin, could you run with the line switches I mention earlier in this
issue?  Specifically, see if forcing the popup to be heavyweight cures
the problem, and if possible capture the logging output from the 
logging line switch?  

That will help to find out if what I think is going on is what's going 
on - the combo comes up lightweight, it won't fit, it is converted to
heavyweight, then it will fit, it is converted to lightweight...

Also, could you specify *exactly* what platform/configuration/jdk/etc
you are using?
Comment 31 _ tboudreau 2003-09-17 17:43:59 UTC
More questions:
Does the popup come near the edge of the screen?  I'm wondering if the
problem is code that moves the window so it stays on the screen - if it
is wide and the list is on the far right, it will be repositioned.

Does this happen for all combo editors, or only specific properties?

What window manager are you using?

Are there any other applications running at the same time?  Do any 
things outside the JVM have an effect on whether the bug manifests
itself?
Comment 32 _ tboudreau 2003-09-17 21:07:40 UTC
I've added another diagnostic option.  Could you do a build and run with
-J-Dnetbeans.ps.standardComboUI=true

(and not netbeans.ps.combohack=true) and see if you can reproduce the
problem?  I would like to determine if the problem is in the interaction
between the table and the combo box, or is a problem in the UI class
I'm using.
Comment 33 _ tboudreau 2003-09-17 21:29:06 UTC
And still more logging options:  Could you also try running NetBeans
with only the option 
-J-Dnetbeans.ps.logComboPaints

then reproduce the problem and attach the log file?  It should have
all kinds of stack traces in it from anytime the editor was shown or
repainted, so it should be much easier to see what is triggering the
repainting.
Comment 34 Martin Entlicher 2003-09-18 10:48:36 UTC
So I've tested it with the switches on the new build #200309180100.
Here's the info:

Product Version       = NetBeans IDE Dev (Build 200309180100)
Operating System      = SunOS version 5.9 running on sparc
Java; VM; Vendor      = 1.4.0_03; Java HotSpot(TM) Client VM
                        1.4.0_03-b04; Sun Microsystems Inc.
Java Home             = /usr/j2se/jre
System Locale; Encod. = cs_CZ; ISO8859-2

Starting system in full screen (MDI) UI mode.

I've run it again without any switches and the behavior is the same.

When switches -J-Dnetbeans.ps.combohack=true
-J-Dnetbeans.ps.combolog=true are used, the behavior is still the same
and nothing is printed into the console not ide.log.

It seems, that the problem is not in resizing, but in repainting. When
the popup is shown, it's visible without problems until you start to
move the mouse above the popup window. You can select the desired item
via keyboard arrows, but as soon as you start to move the mouse
pointer, it's quickly blinking and after a while it collapses.

SDI or MDI mode does not matter, the behavior is the same.

I've tried only the switch -J-Dnetbeans.ps.logComboPaints but again,
the behavior is the same and noting is printed to the console nor
ide.log.

Finally -J-Dnetbeans.ps.standardComboUI=true fix the problem. The
popup window has a scroll bar, but also exceeds the main window
boundary. It displays correctly and does not blink. Only after I start
selecting something it can not be dismissed by ESC and sometimes I
need to click on it twice to get it to expand (when I click on another
combo-box property while one is already expanded).

Hope this helps.
Comment 35 _ tboudreau 2003-09-18 18:23:21 UTC
I'm not surprised the standardComboUI option doesn't really work well - 
there are some hooks in CleanComboUI to allow it to work better with
the table (solves a problem with ordering of FocusListeners).

So it's just madly repainting...I wonder if it could be trying to 
display a tooltip?  

-J-Dnetbeans.ps.logComboPaints should at least print something to
stderr when the combo is opened/closed.  Was there really *nothing*
written?

We need to figure out what the call stack is when these repaints
happen - I wish I could reproduce this.

I've added still another logging option:
-J-Dnetbeans.ps.combolog2

(I'm running out of names :-)

which should print a stack trace every time CleanComboUI.paint() is
called.  Try it and there *should* be a stack trace for each repaint,
so we can figure out where the calls are coming from.
Comment 36 Martin Entlicher 2003-09-19 18:24:25 UTC
Created attachment 11678 [details]
Zipped ide.logs The latest start is with -J-Dnetbeans.ps.combolog2=true -J-Dnetbeans.ps.logComboPaints=true
Comment 37 Martin Entlicher 2003-09-19 18:26:35 UTC
I've attached all ide.logs that I have. The latest start is with
today's build and -J-Dnetbeans.ps.combolog2=true
-J-Dnetbeans.ps.logComboPaints=true switches.

There are some thread dumps. Hope this helps :-)
Comment 38 _ tboudreau 2003-09-20 18:27:32 UTC
Hrm, all of the calls just look like normal repaints when something has
been changed.   So somehow, painting the combo is causing some part
of the window to get invalidated, triggering another paint.  It's very
odd.

I'll be flying back to Prague tomorrow, so maybe we could test some
fixes on one of your machines next week?
Comment 39 _ tboudreau 2003-09-22 10:41:10 UTC
Try it today - I added a trivial rendering optimization which might just
cure the problem (it was part of the call stacks in Martin's log).
Comment 40 dmladek 2003-09-22 14:00:29 UTC
----litle bit off topic----
2 Tim:
> Was there really *nothing* written?
I must comfirm that all Martin described here, I had exactly the same
problems (as looking what I wrote, I wasn't so exact).
Also nothing was printed into console when I used cmd-line switches...
----e/f off topic----


Comment 41 Martin Entlicher 2003-09-22 15:48:34 UTC
I've tried it again (build #200309220100) without any options and the
behavior is still the same :-(
Do you want me to generate some logs via
-J-Dnetbeans.ps.logComboPaints=true ?
Comment 42 _ tboudreau 2003-09-24 09:24:00 UTC
I'd rather have a look at it in the office.

Something is causing repaints to be posted - all of the repaints
come from the usual AWT event-pumping machinery.  The question is - 
*what* is posting these events.

I have a feeling some painting logic may be making RepaintManager 
think that part of the editor was overpainted, so part of the editor's
surface gets marked as dirty and needing to be repainted (and the
repaint will be initiated on the table, because it's the painting
root.

A couple things that might help diagnose - run with these switches
separately:

Try 
 -J-Dnetbeans.ps.nevermargin=true
This will turn off the painting logic that draws the gray left hand
margin, which is an unusual feature of the table's painting.  See if
the behavior is the same.

Then try
 -J-Dnetbeans.ps.forcetabs=true
This will use tabs instead of expandable sets, turning off the
painting logic that draws the expandable sets.

If neither works separately, try them together - that should turn
off all the strange painting logic in the table;  that should help
narrow down the problem, or at least show where it isn't.



Comment 43 Martin Entlicher 2003-09-26 20:21:22 UTC
It does not help neither one of them nor both of them together.

IMHO it would help if you would make it to fit on the properties
window always. It could have a scroll bar when it's too long. This
would be a good idea anyway. If there are 100 items, it wouldn't fit
on the screen. Currently when I move the IDE down to the bottom of the
screen, the popup does not fit and it's blinking from the beginning.
It can not draw itself at all.

I've checked how code completion works. It always fits in the Editor
pane however narrow it is. Something similar would help in this case
as well IMHO.
Comment 44 _ tboudreau 2003-09-27 00:23:05 UTC
It's actually a bug fix that the combo popup is bigger than the combo
- since the space to display text in the combo box is small, popping
up a combo box with enough space for three characters is pretty silly.

I'll make it work somehow...
Comment 45 _ tboudreau 2003-10-22 10:18:27 UTC
FYI, I've found the problem and it's fixed on the PropertyPanel
rewrite branch.
Comment 46 _ tboudreau 2003-12-09 09:37:13 UTC
Property panel rewrite branch merged.
Comment 47 Lukas Hasik 2003-12-10 15:44:42 UTC
Martin, could you please verify or reopen ?
You were the only one that was able to reproduce :) 
thanks.
Comment 48 Lukas Hasik 2004-02-25 18:03:53 UTC
verifying