[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-7317) Cloud Connection wizard: user input is block when entering a url

Andre Dietisheim (JIRA) jira-events at lists.jboss.org
Wed Oct 13 04:22:39 EDT 2010


    [ https://jira.jboss.org/browse/JBIDE-7317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556685#action_12556685 ] 

Andre Dietisheim commented on JBIDE-7317:
-----------------------------------------

analyzed the databinding code. Here's my current state of knowledge for documentation purposes:

To my understanding updates are executed in their own thread:

I observer the url text field in delayed manner (Observable#observeDelayed(delay)).
Delayed observables trigger the update when the delay that was indicated is reached. A Updater (runnable) that is triggered by a timer is used for that purpose:

- DelayedObservableValue#makeDirty:

	scheduleUpdate()

- DelayedObservableValue#scheduleUpdate:

	updater = new ValueUpdater(cachedValue);
	getRealm().timerExec(delay, updater);

- Realm#timerExec: 

	timer.schedule(
		new TimerTask() {
			public void run() {
				asyncExec(runnable);
			}
	}, milliseconds);

- Realm#asyncExec:

	ensureWorkerThreadIsRunning();
	workQueue.enqueue(runnable);
	workQueue.notifyAll();

- Realm#ensureWorkerThreadIsRunning:

		if (workerThread == null) {
			workerThread = new Thread() {
				public void run() {
					try {
						while (true) {
							Runnable work = null;
							synchronized (workQueue) {
								while (workQueue.isEmpty()) {
									workQueue.wait();
								}
								work = (Runnable) workQueue.dequeue();
							}
							syncExec(work);
						}
					} catch (InterruptedException e) {
						// exit
					}
				}
			};
			workerThread.start();
		}
	}


> Cloud Connection wizard: user input is block when entering a url
> ----------------------------------------------------------------
>
>                 Key: JBIDE-7317
>                 URL: https://jira.jboss.org/browse/JBIDE-7317
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: deltacloud
>    Affects Versions: 3.2.0.Beta1
>            Reporter: Andre Dietisheim
>            Assignee: Andre Dietisheim
>             Fix For: 3.2.0.Beta2
>
>
> If you try to create a new connection (Cloud Connection Wizard) and enter a URL, you may come to a point where you cannot enter any new character. The UI is freezing.
> The reason for this is that the wizard tries to connect to the given url and tries to determine if a deltacloud instance may be reached there. This process blocks the UI. The databinding that is used for this matter does checking in a background thread, but does not do it in a proper way (#observeDelayed).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list