[
https://issues.jboss.org/browse/JBIDE-11929?page=com.atlassian.jira.plugi...
]
Max Rydahl Andersen commented on JBIDE-11929:
---------------------------------------------
Snjezana - why do we block the UI to wait for the builder to finish ? A quickfix could
cause a very long wait and if there is an error/bug in a builder it could lock up the
whole UI.
Wouldn't this be better solved by having a progress monitor going like "Waiting
for <xyz> to finish..." and provide a cancel button which would when pressed
state "<xyz> is not yet finished, there might still be problems left to fix. Do
you want to stop waiting and close the quickfix dialog anyway ?" and then provide a
button to say Yes and close the dialog and let the user be able to fix other things while
the builders wait. And if he says No it goes back to continue waiting for it.
Project examples freezes during quickfix dialog
-----------------------------------------------
Key: JBIDE-11929
URL:
https://issues.jboss.org/browse/JBIDE-11929
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: project-examples
Affects Versions: 3.3.0.CR1
Reporter: Rob Stryker
Assignee: Snjezana Peco
Priority: Blocker
Fix For: 3.3.0.CR1
Attachments: JBIDE-11929.jstack
When importing the dvd seam example project, a list of quickfixes was shown. After trying
to fix each one, the UI would freeze for 15-30 seconds. A Jstack revealed the following:
{code}
"main" prio=10 tid=0x00007f35b8009800 nid=0x26e1 in Object.wait()
[0x00007f35bd93c000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000fe463e08> (a
org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39)
- locked <0x00000000fe463e08> (a org.eclipse.core.internal.jobs.Semaphore)
at org.eclipse.core.internal.jobs.JobManager.join(JobManager.java:847)
at org.eclipse.core.internal.jobs.InternalJob.join(InternalJob.java:380)
at org.eclipse.core.runtime.jobs.Job.join(Job.java:385)
at
org.jboss.tools.project.examples.dialog.MarkerDialog.okPressed(MarkerDialog.java:237)
{code}
Clearly the UI thread is waiting on a newly scheduled background job, which causes the
freeze. The lines in this stacktrace match with lines in trunk. The offending lines of
code seem to be this:
{code}
ProjectExamplesActivator.waitForBuildAndValidation.schedule();
ProjectExamplesActivator.waitForBuildAndValidation.join();
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira