Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [dsdp-tm-dev] Question about RSE startup

Dave -

I think that Greg is right and RSEPersistenceManager.isRestoreComplete()
is buggy. For me, it looks like in following code, as soon as we have
a ProviderRecord that is not autostart, the method will always return 
false:

	public boolean isRestoreComplete() {
		boolean isComplete = true;
		String[] ids = getPersistenceProviderIds();
		for (int i = 0; i < ids.length && isComplete; i++) {
			String id = ids[i];
			ProviderRecord pr = getProviderRecord(id);
			isComplete = pr.isAutostart() &&
pr.isRestored();
		}
		return isComplete;
	}

Correct code should be like this:

		for (int i = 0; i < ids.length && isComplete; i++) {
			String id = ids[i];
			ProviderRecord pr = getProviderRecord(id);
                  if (pr.isAutostart()) isComplete = pr.isRestored();
		}

Because the SerializingProvider is not autostart, this would 
always return false. Can you confirm, and if yes create a bug for this 
and fix it for 2.0.1?

Thanks,
--
Martin Oberhuber
Wind River Systems, Inc.
Target Management Project Lead, DSDP PMC Member
http://www.eclipse.org/dsdp/tm 

> -----Original Message-----
> From: dsdp-tm-dev-bounces@xxxxxxxxxxx 
> [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of Greg Watson
> Sent: Wednesday, June 27, 2007 6:10 PM
> To: Target Management developer discussions
> Subject: Re: [dsdp-tm-dev] Question about RSE startup
> 
> Martin,
> 
> That's great. However it doesn't seem to work. Is there something  
> else that needs to be done apart from the following?
> 
> 		if (!RSEUIPlugin.isTheSystemRegistryActive()) {
> 			return false;
> 		}
> 		
> 		sysReg = RSECorePlugin.getDefault().getSystemRegistry();
> 		if (sysReg == null) {
> 			return false;
> 		}
> 		
> 		while 
> (!RSECorePlugin.getThePersistenceManager().isRestoreComplete 
> ()) {
> 			System.out.println("waiting for restore...");
> 			try {
> 				Thread.sleep(500);
> 			} catch (InterruptedException e) {
> 			}
> 		}
> 
> The call to isRestoreComplete() always returns false. This is being  
> run in a different thread to the UI thread.
> 
> Greg
> 
> On Jun 27, 2007, at 9:41 AM, Oberhuber, Martin wrote:
> 
> > Hi Greg,
> >
> > There was
> > https://bugs.eclipse.org/bugs/show_bug.cgi?id=177332#c6
> > requesting exactly this.
> >
> > As I understand it, what you need to do is
> >
> > RSECorePlugin.getThePersistenceManager().isRestoreComplete()
> >
> > Cheers,
> > --
> > Martin Oberhuber
> > Wind River Systems, Inc.
> > Target Management Project Lead, DSDP PMC Member
> > http://www.eclipse.org/dsdp/tm
> >
> >> -----Original Message-----
> >> From: dsdp-tm-dev-bounces@xxxxxxxxxxx
> >> [mailto:dsdp-tm-dev-bounces@xxxxxxxxxxx] On Behalf Of Greg Watson
> >> Sent: Wednesday, June 27, 2007 5:20 PM
> >> To: Target Management developer discussions
> >> Subject: [dsdp-tm-dev] Question about RSE startup
> >>
> >> Hi,
> >>
> >> I've been seeing strange behavior from RSE when I call from an
> >> external plugin, particularly during early initialization of
> >> Eclipse.
> >> Although the RSE UI and core plugins are loaded, they don't seem to
> >> have been fully configured. So calling
> >> RSECorePlugin.getTheSystemRegistry().getHosts(), for example,
> >> sometimes returns nothing, sometimes one host, sometimes
> >> multiple hosts.
> >>
> >> I think the issue is caused by the use of InitRSEJob to perform RSE
> >> initialization. I presume that this is to reduce the plugin loading
> >> overhead on Eclipse, but the problem is that it may be some time
> >> before this job is actually run, so it is possible to attempt
> >> to call
> >> RSE methods before it is fully initialized.
> >>
> >> Do you have any way of checking that RSE is ready, rather than just
> >> loaded? Alternatively, could isTheSystemRegistryActive() be changed
> >> so that it reflects the initialized state of RSE?
> >>
> >> Thanks,
> >>
> >> Greg
> >> _______________________________________________
> >> dsdp-tm-dev mailing list
> >> dsdp-tm-dev@xxxxxxxxxxx
> >> https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev
> >>
> > _______________________________________________
> > dsdp-tm-dev mailing list
> > dsdp-tm-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev
> >
> 
> _______________________________________________
> dsdp-tm-dev mailing list
> dsdp-tm-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/dsdp-tm-dev
> 


Back to the top