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

Martin --

It looks like you are correct.

Greg --

You can try yanking the serializing provider from the plugin.xml of the
rse.core plugin and see if this fixes your problem. Its there for testing
purposes which is why it isn't autostart. You won't miss it.
_______________________
David Dykstal
david_dykstal@xxxxxxxxxx


                                                                           
             "Oberhuber,                                                   
             Martin"                                                       
             <Martin.Oberhuber                                          To 
             @windriver.com>           David Dykstal/Rochester/IBM@IBMUS   
                                                                        cc 
             06/27/2007 11:28          "Target Management developer        
             AM                        discussions"                        
                                       <dsdp-tm-dev@xxxxxxxxxxx>           
                                                                   Subject 
                                       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