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

Greg --

Can you attach the profiles to the bug? I'm curious to see what kind of shape they are in. They'll be in the RemoteSystemsConnections project in your workspace and/or in the .metadata/.plugins/ org.eclipse.rse.core/profiles directory.

-- Dave

On Jun 28, 2007, at 4:11 AM, Oberhuber, Martin wrote:

Greg - looking at the code, I cannot see how the type
of a FilterPool would be null unless the stuff you
persisted is somehow broken.

Did you see any crashes of Eclipse recently that could
have led to incompletely stored persisted data? Any
interesting errors logged?

At any rate, if you could write up a bug on bugzilla,
this would be helpful.

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: Thursday, June 28, 2007 1:48 AM
To: Target Management developer discussions
Subject: Re: [dsdp-tm-dev] Question about RSE startup

I spoke a bit too soon. I'm seeing the following errors
intermittently on startup:

Greg

java.lang.NullPointerException
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eFilterPoo
l(RSEDOMImporter.java:376)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eProfile
(RSEDOMImporter.java:90)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.load
(RSEPersistenceManager.java:390)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.loa
dProfiles(
RSEPersistenceManager.java:370)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:231)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:217)
	at
org.eclipse.rse.internal.core.model.SystemProfileManager.getDefault
(SystemProfileManager.java:55)
	at
org.eclipse.rse.core.model.SystemStartHere.getSystemProfileManager
(SystemStartHere.java:180)
	at
org.eclipse.rse.ui.RSEUIPlugin$InitRSEJob.run(RSEUIPlugin.java:95)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.lang.NullPointerException
	at
org.eclipse.rse.internal.persistence.PropertyFileProvider.getSaveJob
(PropertyFileProvider.java:151)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.save
(RSEPersistenceManager.java:420)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.com
mitProfile
(RSEPersistenceManager.java:137)
	at org.eclipse.rse.internal.core.model.SystemProfile.commit
(SystemProfile.java:216)
	at org.eclipse.rse.internal.core.model.SystemHostPool.commit
(SystemHostPool.java:612)
	at org.eclipse.rse.internal.core.model.SystemHostPool.commit
(SystemHostPool.java:621)
	at
org.eclipse.rse.internal.core.model.SystemHostPool.updateHost
(SystemHostPool.java:254)
	at
org.eclipse.rse.internal.core.model.SystemHostPool.createHost
(SystemHostPool.java:208)
	at org.eclipse.rse.ui.internal.model.SystemRegistry.createHost
(SystemRegistry.java:1652)
	at org.eclipse.rse.ui.internal.model.SystemRegistry.createHost
(SystemRegistry.java:1601)
	at org.eclipse.rse.ui.internal.model.SystemRegistry.createHost
(SystemRegistry.java:1922)
	at org.eclipse.rse.ui.internal.model.SystemRegistry.createHost
(SystemRegistry.java:1893)
	at org.eclipse.rse.internal.core.model.SystemProfile.createHost
(SystemProfile.java:89)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restoreHost
(RSEDOMImporter.java:125)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eProfile
(RSEDOMImporter.java:88)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.load
(RSEPersistenceManager.java:390)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.loa
dProfiles(
RSEPersistenceManager.java:370)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:231)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:217)
	at
org.eclipse.rse.internal.core.model.SystemProfileManager.getDefault
(SystemProfileManager.java:55)
	at
org.eclipse.rse.core.model.SystemStartHere.getSystemProfileManager
(SystemStartHere.java:180)
	at
org.eclipse.rse.ui.RSEUIPlugin$InitRSEJob.run(RSEUIPlugin.java:95)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
java.lang.NullPointerException
	at
org.eclipse.rse.ui.internal.model.SystemRegistry.getServiceSubSystems
(SystemRegistry.java:1104)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eSubSystem
(RSEDOMImporter.java:231)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eConnector
Service(RSEDOMImporter.java:169)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restoreHost
(RSEDOMImporter.java:138)
	at
org.eclipse.rse.internal.persistence.dom.RSEDOMImporter.restor
eProfile
(RSEDOMImporter.java:88)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.load
(RSEPersistenceManager.java:390)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.loa
dProfiles(
RSEPersistenceManager.java:370)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:231)
	at
org.eclipse.rse.internal.persistence.RSEPersistenceManager.res
toreProfil
es(RSEPersistenceManager.java:217)
	at
org.eclipse.rse.internal.core.model.SystemProfileManager.getDefault
(SystemProfileManager.java:55)
	at
org.eclipse.rse.core.model.SystemStartHere.getSystemProfileManager
(SystemStartHere.java:180)
	at
org.eclipse.rse.ui.RSEUIPlugin$InitRSEJob.run(RSEUIPlugin.java:95)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)


On Jun 27, 2007, at 10:44 AM, David Dykstal wrote:

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



_______________________________________________
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