Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-core-dev] [Fwd: [platform-team-dev] Re: [Subclipse-dev] [Fwd: Re: some errors occur from time to time when build STP using Buckminster]]

Hi Tom,
This cannot be related to the workbench unless you are talking about some headless workbench code that I'm unaware of. It's not just the execution that is headless. The installation is pure headless too. No UI plugins are included.

The events stem from org.eclipse.team.internal.core.BackgroundEventHandler and it seems like it continues to send events even though the workspace has been closed. The NPE is on this line:

return ResourcesPlugin.getWorkspace().getSynchronizer().getSyncInfo(StatusCacheManager.SVN_BC_SYNC_KEY, resource);

which suggests that ether ResourcePlugin.getWorkspace() returns null or the subsequent call to getSynchronizer() returns null. What I'm trying to figure out is:

a) Are we doing something wrong when we shut down? Buckminster headless is an IApplication. The last thing it does is to issue a ResourcesPlugin.getWorkspace().save(true, monitor).

b) If we are not doing anything wrong. Is it wrong for the Subclipse plugin to assume that the ResourcesPlugin.getWorkspace().getSynchronizer() is OK to use when getDiff() is called?

c) Regardless of a) and b) what can be done to prevent this from happening short term?

Regards,
Thomas Hallgren

Thomas Watson wrote:

Down in the thread there is this statement

>>>> Alex gets a NPE just before a headless Eclipse invocation is shutting down (see email below). This
>>>> happens on a Linux machine. Any ideas?

If the application is headless is it possible the workbench was never started in the first place? During Framework shutdown the lazy activated bundles are stopped by reverse dependency order (hint: a vast majority of bundles in eclipse are lazy activated including the UI workbench bundles). If the bundle has a dependency on the workbench bundle then it should be shutdown before the workbench. But if the workbench was never started in the first place then the workbench may not even be active when your bundle is shutdown.

Tom



Inactive hide details for Thomas Hallgren ---01/15/2008 03:22:23 AM---Hi,Thomas Hallgren ---01/15/2008 03:22:23 AM---Hi,


From: 	
Thomas Hallgren <thomas@xxxxxxx>

To: 	
"Eclipse Platform Core component developers list." <platform-core-dev@xxxxxxxxxxx>

Date: 	
01/15/2008 03:22 AM

Subject: 	
[platform-core-dev] [Fwd: [platform-team-dev] Re: [Subclipse-dev] [Fwd: Re: some errors occur from time to time when build STP using Buckminster]]

------------------------------------------------------------------------



Hi,
I emailed this to the platform-team-dev list but I didn't get any reply
and I haven't seen much traffic on that list. So I'll try here instead.
Any help is greatly appreciated.

Regards,
Thomas Hallgren


-------- Original Message --------
Subject: [platform-team-dev] Re: [Subclipse-dev] [Fwd: Re: some errors
occur from time to time when build STP using Buckminster]
Date: Thu, 10 Jan 2008 15:32:27 +0100
From: Thomas Hallgren <thomas@xxxxxxx>
Reply-To: Generic team support framework <platform-team-dev@xxxxxxxxxxx>
To: dev@xxxxxxxxxxxxxxxxxxxx, platform-team-dev@xxxxxxxxxxx
References: <4785CA55.9060105@xxxxxxx>
<ff892c5d0801100611p1fe612dfj817e76efd2951af@xxxxxxxxxxxxxx>
<478629BC.5020203@xxxxxxx>
<ff892c5d0801100624g309445e0r40fa7ff838401973@xxxxxxxxxxxxxx>



Perhaps that would work. But calling start/stop is the responsibility of
the OSGi framework. There must be some other mechanism that controls
this (I don't seem to recall ever getting this error from the IDE). I'll
CC the platform-team-dev@xxxxxxxxxxx mailing list and see if anyone
there can shed some light on this.

- thomas


Mark Phippard wrote:
> Not sure.  Is it possible to call the stop() method on the plugin and
> have it just shut it stuff down?
>
> Mark
>
>
> On Jan 10, 2008 9:20 AM, Thomas Hallgren <thomas@xxxxxxx> wrote:
> >> Do you know if there's something that we can do to prevent this from >> happening? Is there some way to shut down the SubscriberChangeSetManager
>> before the workspace plugin is stopped?
>>
>> - thomas
>>
>>
>> Mark Phippard wrote:
>> >>> This is the method:
>>>
>>> protected byte[] internalGetCachedSyncBytes(IResource resource)
>>> throws SVNException {
>>>                       try {
>>> return ResourcesPlugin.getWorkspace().getSynchronizer().getSyncInfo(StatusCacheManager.SVN_BC_SYNC_KEY,
>>> resource);
>>>                       } catch (CoreException e) {
>>>                               throw SVNException.wrapException(e);
>>>                       }
>>>               }
>>>
>>>
>>> My guess would be that getWorkspace() is returning null because the
>>> workspace is shutting down.
>>>
>>>
>>>
>>>
>>>
>>> On Jan 10, 2008 2:33 AM, Thomas Hallgren <thomas@xxxxxxx> wrote:
>>>
>>> >>>> Hi, >>>> Alex gets a NPE just before a headless Eclipse invocation is shutting down (see email below). This
>>>> happens on a Linux machine. Any ideas?
>>>>
>>>> Regards,
>>>> Thomas Hallgren
>>>>
>>>>
>>>> -------- Original Message --------
>>>> Subject: Re: some errors occur from time to time when build STP using Buckminster
>>>> Date: Thu, 10 Jan 2008 11:18:10 +0800
>>>> From: Alex Chen <alex.chen@xxxxxxxx>
>>>> Organization: EclipseCorner
>>>> To: Thomas Hallgren <thomas@xxxxxxx>
>>>> Newsgroups: eclipse.technology.buckminster
>>>> References: <flkuh4$7k8$1@xxxxxxxxxxxxxxxxx> <477E43C0.9010902@xxxxxxx> <4781E074.8040409@xxxxxxxx> >>>> <4782F178.9010606@xxxxxxxx> <4783E91D.30502@xxxxxxx> <47848270.80306@xxxxxxxx>
>>>> <47849CB9.9060304@xxxxxxx> <4784F016.7070403@xxxxxxx>
>>>>
>>>> Hi Thomas,
>>>>
>>>> During build STP use Buckminster 0.3.0, I got exception intermittent below:
>>>>
>>>>      [java] INFO:  Query complete.
>>>> [java] ERROR: An internal error occurred during: "Updating Change
>>>> Sets for SVNStatusSubscriber".
>>>>       [java] java.lang.NullPointerException
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache$SyncInfoSynchronizedAccessor.internalGetCachedSyncBytes(SynchronizerSyncInfoCache.java:215)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.getCachedSyncBytes(SynchronizerSyncInfoCache.java:107)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.hasCachedStatus(SynchronizerSyncInfoCache.java:44)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.status.StatusCacheManager.hasCachedStatus(StatusCacheManager.java:80)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isParentInSvnIgnore(LocalResource.java:153)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:112)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.resources.LocalResource.isIgnored(LocalResource.java:137)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.sync.SVNWorkspaceSubscriber.isSupervised(SVNWorkspaceSubscriber.java:122)
>>>>       [java]     at
>>>> org.tigris.subversion.subclipse.core.sync.SVNWorkspaceSubscriber.getSyncInfo(SVNWorkspaceSubscriber.java:171)
>>>>       [java]     at
>>>> org.eclipse.team.core.subscribers.Subscriber.getDiff(Subscriber.java:370)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager.getDiff(SubscriberChangeSetManager.java:302)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:183)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.handleChange(SubscriberChangeSetManager.java:206)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.subscribers.SubscriberChangeSetManager$EventHandler.doDispatchEvents(SubscriberChangeSetManager.java:80)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.BackgroundEventHandler.dispatchEvents(BackgroundEventHandler.java:394)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.BackgroundEventHandler.processEvents(BackgroundEventHandler.java:374)
>>>>       [java]     at
>>>> org.eclipse.team.internal.core.BackgroundEventHandler$1.run(BackgroundEventHandler.java:203)
>>>>       [java]     at
>>>> org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
>>>>
>>>>
>>>> Thanks,
>>>> --Alex
>>>>

_______________________________________________
platform-core-dev mailing list
platform-core-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-core-dev

------------------------------------------------------------------------

_______________________________________________
platform-core-dev mailing list
platform-core-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-core-dev



Back to the top