Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EMFStore] [ECP] Problem in deleting project
[EMFStore] [ECP] Problem in deleting project [message #1444386] Tue, 14 October 2014 02:45 Go to next message
Roza Ghamari is currently offline Roza GhamariFriend
Messages: 82
Registered: January 2013
Member
I use the ecp and emfstore api's to delete a local project. My code is:

ECPProject prj = ECPUtil.getECPProjectManager().getProject(TAG_PRJ_NAME);
if (prj!= null)
prj.delete();
tagProject.delete(new ESSystemOutProgressMonitor());

This project seems to be deleted from workspace and the file created for this project in [ws]\.metadata\.plugins\org.eclipse.emf.ecp.core\projects path is removed. However, when I try to access the server and do a chechout the deleted project file is recreated!

I have a special project that I checkout get some information from and delete immediately. However, because of the issue explained above, the deleted project file is restored in the given path. However, the restored file doesn't have a type like other and the data in file is just:
"’ wG QESCompositeTag projectSpaceID _DOgP0FMzEeSt0Mmj7anKwA "

As a result, when I try to reopen the same workspace, I get a null poiunter exception in the ecp project manger initialization with this stack trace.

This only happens for the specific project that I checkout programatically. My other projects when I delete the files gets restored, but the information in the file is correct. I should add that the project I create automatically has a different user session.

!ENTRY org.eclipse.emf.ecp.core 4 0 2014-10-13 16:52:59.909
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.ServiceException: Exception in org.eclipse.equinox.internal.ds.ServiceReg.getService()
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:151)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:468)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:467)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:594)
at org.eclipse.emf.ecp.internal.core.Activator.getECPProjectManager(Activator.java:143)
at org.eclipse.emf.ecp.core.util.ECPUtil.getECPProjectManager(ECPUtil.java:180)
at org.eclipse.emf.ecp.spi.core.DefaultProvider.fillChildren(DefaultProvider.java:291)
at org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider.access$0(EMFStoreProvider.java:1)
at org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider$1.call(EMFStoreProvider.java:162)
at org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider$1.call(EMFStoreProvider.java:1)
at org.eclipse.emf.emfstore.client.util.RunESCommand$1.doRun(RunESCommand.java:137)
at org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommand.commandBody(EMFStoreCommand.java:51)
at org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.execute(AbstractEMFStoreCommand.java:64)
at org.eclipse.emf.common.command.BasicCommandStack.execute(BasicCommandStack.java:78)
at org.eclipse.emf.emfstore.internal.client.model.changeTracking.commands.EMFStoreBasicCommandStack.execute(EMFStoreBasicCommandStack.java:72)
at org.eclipse.emf.emfstore.internal.client.model.util.AbstractEMFStoreCommand.aRun(AbstractEMFStoreCommand.java:108)
at org.eclipse.emf.emfstore.internal.client.model.util.EMFStoreCommand.run(EMFStoreCommand.java:60)
at org.eclipse.emf.emfstore.client.util.RunESCommand.run(RunESCommand.java:145)
at org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider.fillChildren(EMFStoreProvider.java:159)
at org.eclipse.emf.ecp.internal.core.ECPProviderRegistryImpl$ProviderDescriptor.fillChildren(ECPProviderRegistryImpl.java:216)
at org.eclipse.emf.ecp.internal.ui.model.ECPContentProvider.fillChildren(ECPContentProvider.java:50)
at org.eclipse.emf.ecp.internal.ui.model.RepositoriesContentProvider.fillChildren(RepositoriesContentProvider.java:90)
at org.eclipse.emf.ecp.internal.ui.model.TreeContentProvider.fillChildrenDetectError(TreeContentProvider.java:193)
at org.eclipse.emf.ecp.internal.ui.model.TreeContentProvider.getChildrenList(TreeContentProvider.java:185)
at org.eclipse.emf.ecp.internal.ui.model.TreeContentProvider.hasChildren(TreeContentProvider.java:59)
at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2146)
at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:588)
at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2176)
at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2858)
at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:852)
at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:849)
at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:823)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:797)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:768)
at org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1548)
at org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1532)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1525)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at org.eclipse.emf.ecp.spi.common.ui.TreeViewerFactory.createTreeViewer(TreeViewerFactory.java:62)
at org.eclipse.emf.ecp.spi.common.ui.TreeViewerFactory.createTreeViewer(TreeViewerFactory.java:36)
at org.eclipse.emf.ecp.ui.common.ECPViewerFactory.createRepositoryExplorerViewer(ECPViewerFactory.java:143)
at org.eclipse.emf.ecp.ui.views.ModelRepositoriesView.createViewer(ModelRepositoriesView.java:58)
at org.eclipse.emf.ecp.ui.views.TreeView.createPartControl(TreeView.java:113)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:142)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:174)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:323)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:877)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:857)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:119)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:333)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:254)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:102)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:71)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:53)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:949)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:633)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$6.run(PartRenderingEngine.java:526)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:511)
at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:61)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:949)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:633)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:735)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:706)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:700)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:685)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1147)
at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:65)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4688)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:205)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:80)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$10.widgetSelected(StackRenderer.java:936)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:778)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3080)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1772)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:279)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at com.qualcomm.qti.qsip.rcp.Application.start(Application.java:125)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: org.osgi.service.component.ComponentException: [SCR] Exception while activating instance ECPProjectManagerImpl of component org.eclipse.emf.ecp.core.ecpProjectManager
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:275)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.ServiceReg.getService(ServiceReg.java:53)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse$1.run(ServiceUse.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceUse.getService(ServiceUse.java:139)
... 136 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:235)
... 143 more
Caused by: java.lang.IllegalStateException: Provider not found:
at org.eclipse.emf.ecp.internal.core.ECPProjectImpl.<init>(ECPProjectImpl.java:140)
at org.eclipse.emf.ecp.internal.core.ECPProjectManagerImpl.loadElement(ECPProjectManagerImpl.java:267)
at org.eclipse.emf.ecp.internal.core.ECPProjectManagerImpl.loadElement(ECPProjectManagerImpl.java:1)
at org.eclipse.emf.ecp.internal.core.util.PropertiesStore.load(PropertiesStore.java:93)
at org.eclipse.emf.ecp.internal.core.util.PropertiesStore.doActivate(PropertiesStore.java:77)
at org.eclipse.emf.ecp.internal.core.ECPProjectManagerImpl.doActivate(ECPProjectManagerImpl.java:255)
at org.eclipse.net4j.util.lifecycle.Lifecycle.internalActivate(Lifecycle.java:76)
at org.eclipse.net4j.util.lifecycle.Lifecycle.activate(Lifecycle.java:162)
... 148 more
Re: [EMFStore] [ECP] Problem in deleting project [message #1445302 is a reply to message #1444386] Wed, 15 October 2014 08:52 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar MuellerFriend
Messages: 89
Registered: March 2011
Member
Hi Roza,

I did not yet completly understand what you are trying to achieve.
So, you have a project, which you want to delete after you did check it
out? And you tried to delete it programatically with the listing below:

> I use the ecp and emfstore api's to delete a local project. My code is:
>
> ECPProject prj = ECPUtil.getECPProjectManager().getProject(TAG_PRJ_NAME);
> if (prj!= null)
> prj.delete();
> tagProject.delete(new ESSystemOutProgressMonitor());

If so, you need to know that the delete call on an ECPProject, which has
an underlying EMFStore project as its internal representation, only
deletes the local project, but not the remote one on the server.

For this to achieve you'll need to fallback on EMFStore's API by casting
prj to ECPProjectImpl:

ESLocalProject localProject =
((ECPProjectImpl) prj).getProviderSpecificData();

localProject.getRemoteProject().delete(new NullProgressMonitor());

Cheers,
Edgar

--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMFStore] [ECP] Problem in deleting project [message #1445725 is a reply to message #1445302] Wed, 15 October 2014 21:25 Go to previous messageGo to next message
Roza Ghamari is currently offline Roza GhamariFriend
Messages: 82
Registered: January 2013
Member
Hi Edgar,

Thanks for the reply. No I don't want to delete the remote project. I just want to delete the local checked out project completely. However some of the project metadate is restored.

The steps to reproduce this:

1- checkout a project from your server
2- open this directory [wsLoc]\.metadata\.plugins\org.eclipse.emf.ecp.core\projects . A file should be created for this project
3- delete the project from Model Explorer
4- check the directory,,, file is gone
5. create a new project
6. the file for the deleted project is restored.

This file can cause issues, for instance if you reopen the same workspace, in the model explorer there is a project with null pointer exception.

For my case there is another issue as well. The file that gets restored doesn't have enough information, for instance no rpovider information. As a result when I try to reopen the workspace it causes problem in starting the provider for ECP and hence the ecp service doesn't get initialized and the whole system stops working.

Re: [EMFStore] [ECP] Problem in deleting project [message #1445758 is a reply to message #1445725] Wed, 15 October 2014 22:35 Go to previous messageGo to next message
Roza Ghamari is currently offline Roza GhamariFriend
Messages: 82
Registered: January 2013
Member
I figured out why my ecp project was not creating. Apprently the server info I was passing with usersession was not equal to the one that was in ECPRepositoryManager. However, ECP code was not showing the eception for repository passing null in the createProject. I will report this to ECP. The problem on EMFSotre side was, I was using EMSToreClientUtil to create a user session by passing the server url and port. This was not fetching the server instance that was already in the workspace.

The issue with the files restoring after delete still exist but it doesn't cause the null pointer exception as the project is created correctly.
Re: [EMFStore] [ECP] Problem in deleting project [message #1446008 is a reply to message #1445758] Thu, 16 October 2014 08:05 Go to previous message
Edgar Mueller is currently offline Edgar MuellerFriend
Messages: 89
Registered: March 2011
Member
Hi Roza,

glad to hear you were able to figure it out on your own.

Would you mind updating your BR
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=447000) with your findings?
EMFStoreClientUtil should return the server info contained in the
workspace, as you already pointed out.

Thanks!

Cheers,
Edgar

> I figured out why my ecp project was not creating. Apprently the server
> info I was passing with usersession was not equal to the one that was in
> ECPRepositoryManager. However, ECP code was not showing the eception for
> repository passing null in the createProject. I will report this to ECP.
> The problem on EMFSotre side was, I was using EMSToreClientUtil to
> create a user session by passing the server url and port. This was not
> fetching the server instance that was already in the workspace.
> The issue with the files restoring after delete still exist but it
> doesn't cause the null pointer exception as the project is created
> correctly.


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Previous Topic:[EMFStore] Updating product meta-model
Next Topic:[EMFStore] disabling ceckout observer
Goto Forum:
  


Current Time: Thu Sep 19 09:17:21 GMT 2024

Powered by FUDForum. Page generated in 0.04291 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top