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.
For UI testing it is important to know that initialization of IDE was finished. It will satisfy a better stability of tests. Maybe it is sometimes not easy to say when IDE is initialized but any attempt to specify such a moment is helpful.
It is probably necessary to specify what is meant by "finished". Usually people mean that main window is opened and ready to use. Still after that a set of tasks is being executed (warm up). Do these matter or not?
Yes, warm up tasks matter. Especially when they can refresh some part of UI (e.g. module installation). Even if they do nothing with UI, it would be nice to know that something happens on the background because it can influence speed of tested UI operations. So, "finished" means that no process is running in IDE (except periodical ones).
BTW -J-Dnetbeans.warmup.skip=true can be used to suppress warm-up tasks if desired.
As the correct definition of "fully initialized" is a litle bit fuzzy and the request comes from test group, I suggest to implement this in xtest. It will need a little bit of help from core, but that should be very simple. I am attaching a diff that prints out "FINISHED!!!" close to the exact time that we want to identify (right now a second or two before main window is opened). To improve the time of the notification, the window system guys could put some waits into the main initialization thread and wait until whole window system is finished. That should be pretty easy.
Created attachment 10994 [details] Main.main waits for the end of execution
Preliminary tests with XTest and the patch seem to work ok. I think the patch should be comitted to cvs.
/cvs/core/src/org/netbeans/core/Main.java,v <-- Main.java new revision: 1.170; previous revision: 1.169 done Checking in src/org/netbeans/core/TopThreadGroup.java; /cvs/core/src/org/netbeans/core/TopThreadGroup.java,v <-- TopThreadGroup.java new revision: 1.20; previous revision: 1.19 done
Verified.