Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 329966 - loading model on UI Thread causes RuntimeException for reentrant call while viewer is busy
Summary: loading model on UI Thread causes RuntimeException for reentrant call while v...
Status: RESOLVED FIXED
Alias: None
Product: WTP Java EE Tools
Classification: WebTools
Component: jst.j2ee (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 4.0   Edit
Assignee: Dimitar Giormov CLA
QA Contact: Chuck Bridgham CLA
URL:
Whiteboard:
Keywords:
Depends on: 328818
Blocks:
  Show dependency tree
 
Reported: 2010-11-10 19:10 EST by Carlin Rogers CLA
Modified: 2011-11-07 05:06 EST (History)
3 users (show)

See Also:


Attachments
RuntimeException stack trace (8.50 KB, text/plain)
2010-11-10 19:10 EST, Carlin Rogers CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Carlin Rogers CLA 2010-11-10 19:10:08 EST
Created attachment 182861 [details]
RuntimeException stack trace

Occasionally I see a RuntimeException for an "Ignored reentrant call while viewer is busy" condition. It is not always reproducible but typically I see it when I launch Eclipse and an editor is opening a descriptor file like web.xml (the previous state of Eclipse was shut down with the file open in the editor).

Seems that while a tree viewer for the navigator is set up on the UI thread, there's a call to get the model for the descriptor from the content provider, Web25ContentProvider, and executed in a workspace runnable. This process ends up with the JobManager replacing the NullProgressMonitor with EventLoopProgressMonitor. Then the call to isCanceled() on that monitor runs an event loop where additional navigator view code is executed on the UI thread causing the reentrant call into the ColumnViewer.
Comment 1 Carl Anderson CLA 2010-11-11 13:45:40 EST
I'm not sure this is WTP - most of that is not.

Assigning to Kaloyan for initial investigation - his team has done the MergedModel work.
Comment 2 Kaloyan Raev CLA 2010-11-11 13:50:21 EST
Dimitar, could you take a look? Is it possible that the loadModel() method invokes operation in the UI thread that should not be executed there?
Comment 3 Dimitar Giormov CLA 2011-01-21 05:10:45 EST
You are right Carl, this has nothing to do with WTP.
The call is made from the UI layer where the model load is triggered.
Model load executes workspace runnable. From calling Run till the end of the stack there is no WTP code. The run method was never executed.

But I am not sure where should I move this bug report.
Comment 4 Dimitar Giormov CLA 2011-01-28 08:50:32 EST
re-targeting for 3.3
Comment 5 Dimitar Giormov CLA 2011-05-20 03:28:52 EDT
this should be fixed with Bug: 328818
Comment 6 Dimitar Giormov CLA 2011-11-07 05:06:12 EST
This should be fixed with 328818, since the loading is no longer in UI Thread.
Reopen if still reproducible.