Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 344468

Summary: Workbench is not loading when a store bundle is activated before loading the workbench
Product: [RT] ECF Reporter: Isuru Udana <isudana>
Component: ecf.newsreaderAssignee: Wim Jongman <wim.jongman>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: isuru.uln, remy.suen, wim.jongman
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Isuru Udana CLA 2011-05-02 10:55:28 EDT
Salvo workbench is not loading and get stuck if one of the store bundles are started before loading the workbench.
Comment 1 Isuru CLA 2011-05-19 07:19:57 EDT
This occurs in Linux platform. The problem is something related to Secure Storage.
Comment 2 Wim Jongman CLA 2011-06-02 14:02:12 EDT
can you please give some more information. What do you mean by "before loading the workbench". Do you mean before you see the UI? Is there an obscured window  asking for credentials?
Comment 3 Wim Jongman CLA 2011-06-02 14:03:23 EDT
Are you running the Salvo dowloaded RCP or do you run from the workbench?
Comment 4 Isuru Udana CLA 2011-06-02 22:34:59 EDT
(In reply to comment #2)
> can you please give some more information. What do you mean by "before loading
> the workbench". Do you mean before you see the UI?

Yes before I see the UI.In the splash screen "Loading workbench.." displays and get stuck.

> Is there an obscured window 
> asking for credentials?

No.
Comment 5 Isuru Udana CLA 2011-06-02 22:35:59 EDT
(In reply to comment #3)
> Are you running the Salvo dowloaded RCP or do you run from the workbench?

I am running from the workbench
Comment 6 Wim Jongman CLA 2011-06-05 15:16:43 EDT
Okay. got it. The problem is that we have a deadlock. The Salvo update runner thread fetches the list of servers from the store (in a synchronized block) and for each server it wants to create a connection. To create a connection it wants to fetch the password to the news server from the secure store. The secure store wants to get the UI thread for showing the password dialog to get entrance to the secure store. But the UI thread is blocked by the Salvo news view who tries to create its UI by calling the setContent method on the viewer. Updating the contents of a Viewer all happens in the UI thread. The content provider walks the same path for getting the servers and is blocked by the first synchronized block.
Comment 7 Wim Jongman CLA 2011-06-05 15:30:14 EDT
Fixed and pushed to master:
https://github.com/ECF/Newsreader/commit/e7fe964194f52b5813f2f0cfc8ae767ffc85952b

Starting of the Salvo update thread is now done from the user interface thread. Since the password for the secure store must only be entered once it avoids the described deadlock situation.
Comment 8 Wim Jongman CLA 2011-06-05 17:02:20 EDT
Adding assignee
Comment 9 Wim Jongman CLA 2011-06-05 17:02:41 EDT
asssignee added