[
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
>