Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EMF Client Platform] Modifying content of ECPProject in non-UI thread
[EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1142797] Thu, 17 October 2013 21:35 Go to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi,

I am using an ECP application which I extended with some custom UI features and the underlying code.
I added a few custom commands and handlers to perform the required operations on a project selected by the user in his/her model explorer.

Since most of these operations are long-running operations, I encapsulated them in ProgressMonitors to prevent the UI thread from starving and to illustrate the progress of the operation to the user.

My problem is that I'm running into "java.util.ConcurrentModificationExceptions" whenever one of the ProgressMonitor-operations modifies the content of an ECPProject, since the operation is executed in a thread other than the UI thread:
MyOperation op = new MyOperation(project);
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
progressDialog.run(true /*fork, run in separate thread*/, false, op);

No exception is thrown when the operation is executed within the UI thread, but then the UI thread may become inresponsive until the operation is complete, which of course is not surprising:
MyOperation op = new MyOperation(project);
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
progressDialog.run(false /*do not fork, run in UI thread*/, false, op);

How can I modify the content of an ECPProject in a thread other than the UI thread without running into synchronization errors?
Any help would be appreciated as I'm not really into UI programming with Eclipse/SWT/ECP!

Cheers,
Steffen

Below my post you can find a very simple example that illustrates my problem:

// a simple handler:
public class MyHandler extends AbstractHandler 
{
    public Object execute(ExecutionEvent event) throws ExecutionException 
    {
        ISelection sel = HandlerUtil.getCurrentSelection(event);
        final ECPProject project = (ECPProject) ((StructuredSelection) sel).getFirstElement();                
        final Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
				      
		try
		{
			MyOperation op = new MyOperation(project);
			ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
			progressDialog.run(true, false, op);
		}
		catch (InvocationTargetException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (InterruptedException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
        return null;
    }
}

// a simple operation encapsulated in a ProgressMonitor:
public class MyOperation implements IRunnableWithProgress
{
	private ECPProject project;
    
    public MyOperation(ECPProject newProject)
    {
    	project = newProject;
    }
        
    @Override
    public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException
    {                                        
        monitor.beginTask("Add some elements to the project", 1000);

        for(int i = 0; i < 1000; i++)
        {                                      		
            project.getContents().add( MyModelFactory.eINSTANCE.createMyModel() );            
            monitor.worked(1);
        }
		
        monitor.done();
    }
}

[Updated on: Thu, 17 October 2013 21:38]

Report message to a moderator

Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1143903 is a reply to message #1142797] Fri, 18 October 2013 13:57 Go to previous messageGo to next message
Eugen Neufeld is currently offline Eugen Neufeld
Messages: 52
Registered: March 2012
Member
Hi Steffen,
thank you for posting this problem.
You would extremly help us by providing a stacktrace of this issue.

Cheers,
Eugen

Am 17.10.2013 23:35, schrieb Steffen Lehnert:
> Hi,
>
> I am using an ECP application which I extended with some custom UI
> features and the underlying code.
> I added a few custom commands and handlers to perform the required
> operations on a project selected by the user in his/her model explorer.
>
> Since most of these operations are long-running operations, I
> encapsulated them in ProgressMonitors to prevent the UI thread from
> starving and to illustrate the progress of the operation to the user.
>
> My problem is that I'm running into
> "java.util.ConcurrentModificationExceptions" whenever one of the
> ProgressMonitor-operations modifies the content of an ECPProject, since
> the operation is executed in a thread other than the UI thread:
>
> MyOperation op = new MyOperation(project);
> ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
> progressDialog.run(true /*fork, run in separate thread*/, false, op);
>
> No exception is thrown when the operation is executed within the UI
> thread, but then the UI thread may become inresponsive until the
> operation is complete, which of course is not surprising:
>
> MyOperation op = new MyOperation(project);
> ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
> progressDialog.run(false /*do not fork, run in UI thread*/, false, op);
>
> How can I modify the content of an ECPProject in a thread other than the
> UI thread without running into synchronization errors?
> Any help would be appreciated!
>
> Cheers,
> Steffen
>
> Below my post you can find a very simple example of a custom handler and
> the corresponding operation that will throw the
> "java.util.ConcurrentModificationExceptions" as "fork" is set to "true":
>
>
> // a simple handler:
> public class MyHandler extends AbstractHandler {
> public Object execute(ExecutionEvent event) throws
> ExecutionException {
> ISelection sel = HandlerUtil.getCurrentSelection(event);
> final ECPProject project = (ECPProject) ((StructuredSelection)
> sel).getFirstElement(); final Shell shell =
> HandlerUtil.getActiveWorkbenchWindow(event).getShell();
> try
> {
> MyOperation op = new MyOperation(project);
> ProgressMonitorDialog progressDialog = new
> ProgressMonitorDialog(shell);
> progressDialog.run(true, false, op);
> }
> catch (InvocationTargetException e)
> {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> catch (InterruptedException e)
> {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> return null;
> }
> }
>
> // a simple operation encapsulated in a ProgressMonitor:
> public class MyOperation implements IRunnableWithProgress
> {
> private ECPProject project;
> public MyOperation(ECPProject newProject)
> {
> project = newProject;
> }
> @Override
> public void run(final IProgressMonitor monitor) throws
> InvocationTargetException, InterruptedException
> { monitor.beginTask("Add some elements to the project", 1000);
>
> for(int i = 0; i < 1000; i++)
> {
> project.getContents().add(
> MyModelFactory.eINSTANCE.createMyModel() ); monitor.worked(1);
> }
>
> monitor.done();
> }
> }
>


--
Eugen Neufeld

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1143999 is a reply to message #1143903] Fri, 18 October 2013 15:19 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Eugen,

please find attached the stacktrace when executing the handler.
I started a new ECP application with an empty workspace and created a new project ("Test") for this test.

Regards,
Steffen


p.s.:
I've noticed this behavior after upgrading from EMFStore/ECP 0.9.3 to the recent version (1.0.3).
Previously, I wrapped all project-modifying operations with "EMFStoreCommand" like this:
// handler code...

new EMFStoreCommand()
{
    @Override
    protected void doRun() 
    {
        // apply changes to project in here                       
    }
}.run();

// more handler code...


Everything was fine then.
But since the "EMFStoreCommand" was marked as depricated I was trying to find a solution for the problem.
Instead I also tried wrapping the project-modifying code in a Callable like this but it didn't help:

// handler code...

Callable<Void> call = new Callable<Void>()
{
	@Override
	public Void call() throws Exception
	{
		// apply changes to project in here  
		return null;
	}
};

RunESCommand.run(call);

// more handler code...
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1144034 is a reply to message #1143999] Fri, 18 October 2013 15:49 Go to previous messageGo to next message
Eugen Neufeld is currently offline Eugen Neufeld
Messages: 52
Registered: March 2012
Member
Hi Steffen,
thank you for the stacktrace.
I think I know what causes the exception.
I will check and fix it next week. So there will be a hotfix release
next week.
I will notify you as soon as we have the release.

Cheers,
Eugen

Am 18.10.2013 17:19, schrieb Steffen Lehnert:
> Hi Eugen,
>
> please find attached the stacktrace when executing the handler.
> I started a new ECP application with an empty workspace and created a new project ("Test") for this test.
>
> Regards,
> Steffen
>
>
> p.s.:
> I've noticed this behavior after upgrading from EMFStore/ECP 0.9.3 to the recent version (1.0.3).
> Previously, I wrapped all project-modifying operations with "EMFStoreCommand" like this:
>
> // handler code...
>
> new EMFStoreCommand()
> {
> @Override
> protected void doRun()
> {
> // apply changes to project in here
> }
> }.run();
>
> // more handler code...
>
>
> Everything was fine then.
> But since the "EMFStoreCommand" was marked as depricated I was trying to find a solution for the problem.
> Instead I also tried wrapping the project-modifying code in a Callable like this but it didn't help:
>
>
> // handler code...
>
> Callable<Void> call = new Callable<Void>()
> {
> @Override
> public Void call() throws Exception
> {
> // apply changes to project in here
> return null;
> }
> };
>
> RunESCommand.run(call);
>
> // more handler code...
>


--
Eugen Neufeld

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1153205 is a reply to message #1144034] Thu, 24 October 2013 12:52 Go to previous messageGo to next message
Eugen Neufeld is currently offline Eugen Neufeld
Messages: 52
Registered: March 2012
Member
Hi Steffen,
the issue is more cumbersome then we thought.

We are about to fix this.
But we won't create a hotfix release for this.
The fix will be in the 1.1.0 release which will be on Tuesday next week.

Cheers,
Eugen


--
Eugen Neufeld

Get Professional Eclipse Support: http://eclipsesource.com/munich

Am 18.10.2013 17:49, schrieb Eugen Neufeld:
> Hi Steffen,
> thank you for the stacktrace.
> I think I know what causes the exception.
> I will check and fix it next week. So there will be a hotfix release
> next week.
> I will notify you as soon as we have the release.
>
> Cheers,
> Eugen
>
> Am 18.10.2013 17:19, schrieb Steffen Lehnert:
>> Hi Eugen,
>>
>> please find attached the stacktrace when executing the handler.
>> I started a new ECP application with an empty workspace and created a
>> new project ("Test") for this test.
>>
>> Regards,
>> Steffen
>>
>>
>> p.s.:
>> I've noticed this behavior after upgrading from EMFStore/ECP 0.9.3 to
>> the recent version (1.0.3).
>> Previously, I wrapped all project-modifying operations with
>> "EMFStoreCommand" like this:
>>
>> // handler code...
>>
>> new EMFStoreCommand()
>> {
>> @Override
>> protected void doRun()
>> {
>> // apply changes to project in here
>> }
>> }.run();
>>
>> // more handler code...
>>
>>
>> Everything was fine then.
>> But since the "EMFStoreCommand" was marked as depricated I was trying
>> to find a solution for the problem.
>> Instead I also tried wrapping the project-modifying code in a Callable
>> like this but it didn't help:
>>
>>
>> // handler code...
>>
>> Callable<Void> call = new Callable<Void>()
>> {
>> @Override
>> public Void call() throws Exception
>> {
>> // apply changes to project in here
>> return null;
>> }
>> };
>>
>> RunESCommand.run(call);
>>
>> // more handler code...
>>
>
>
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1159308 is a reply to message #1153205] Mon, 28 October 2013 12:42 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,

unfortunately, I don't think we can fix this problem in a reasonable
way, because it can't be fixed conceptually.
The reason for this is, that EMF expects only one thread at a time to
access the model instance [1].
Apparently, this is not the case, because the UI thread tries to refresh
the viewer that displays the model while the model is being modified.
We'll provide a fix for this, which will block the UI thread in order to
avoid the ConcurrentModificationExcpetion, but, of course, this won't be
of much use to you.
Possible solutions to your problem would be to either use EMF
transaction or use CDO as a backend (for which ECP has a provider).
In case of EMF transaction, you would need to wrap all calls, that
access the model, in commands. See [2] for more info.
For CDO, please see [3].

Hope this helps.

Cheers,
Edgar

[1] http://wiki.eclipse.org/EMF/FAQ#Is_EMF_thread-safe.3F
[2] http://www.eclipse.org/modeling/emf/?project=transaction
[3] http://www.eclipse.org/cdo/

Am 24.10.2013 14:52, schrieb Eugen Neufeld:
> Hi Steffen,
> the issue is more cumbersome then we thought.
>
> We are about to fix this.
> But we won't create a hotfix release for this.
> The fix will be in the 1.1.0 release which will be on Tuesday next week.
>
> Cheers,
> Eugen
>
>


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1160693 is a reply to message #1159308] Tue, 29 October 2013 09:37 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

thank you for your reply. I will take a look at the EMF Transactions then.

Cheers,
Steffen
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1216457 is a reply to message #1160693] Thu, 28 November 2013 13:37 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

I tried to follow your advice on using the EMF Model Transaction framework and encapsulating project-modifying code in commands.
After examining a few examples I came up with the following "solution".
Apparently I must be doing something wrong here, as I'm still getting the ConcurrentModification-exceptions (see the attached Stacktrace.txt).
Unfortunately, I don't really have a clue whether my whole approach is wrong or if it's just the wrong EditingDomain...

I would really appreciate it if you could shed some light on the issue!

Cheers,

Steffen


Here is my (simplified) source code to illustrate the matter:
// a simple handler:
public class MyHandler extends AbstractHandler 
{
    public Object execute(ExecutionEvent event) throws ExecutionException 
    {
        ISelection sel = HandlerUtil.getCurrentSelection(event);
        final ECPProject project = (ECPProject) ((StructuredSelection) sel).getFirstElement();                
        final Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
				      
	try
	{
	     MyOperation op = new MyOperation(project);
	     ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(shell);
	     progressDialog.run(true, false, op);
	}
	catch (InvocationTargetException e)
	{
	     e.printStackTrace();
	}
	catch (InterruptedException e)
	{
	     e.printStackTrace();
	}
		
        return null;
    }
}

// a simple operation encapsulated in a ProgressMonitor:
public class MyOperation implements IRunnableWithProgress
{
    private ECPProject project;
    
    public MyOperation(ECPProject newProject)
    {
       project = newProject;
    }

    @Override
    public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException
    {
        ResourceSet res = AdapterFactoryEditingDomain.getEditingDomainFor(project).getResourceSet();
        TransactionalEditingDomain domain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(res);
        TransactionalCommandStack commandStack = (TransactionalCommandStack) domain.getCommandStack();
    	    	
        RecordingCommand command = new RecordingCommand(domain)
        {
    	    @Override
    	    protected void doExecute()
    	    {
		    int num = 1000;
		    monitor.beginTask("Add some elements to the project", num);
		
		    for(int i = 0; i < num; i++)
		    {                                      		
		       project.getContents().add( MyModelFactory.eINSTANCE.createMyModel() );            
		       monitor.worked(1);
		    }
				
		    monitor.done();
	    }
        };
		
        commandStack.execute(command);
    }
}
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1218997 is a reply to message #1216457] Fri, 29 November 2013 14:35 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,
comments below.

> @Override
> public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException
> {
> ResourceSet res = AdapterFactoryEditingDomain.getEditingDomainFor(project).getResourceSet();
> TransactionalEditingDomain domain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(res);
> TransactionalCommandStack commandStack = (TransactionalCommandStack) domain.getCommandStack();
>
The problem lies within the above code. It has no effect if you create
your own TransactionalEditingDomain here since the project's
EditingDomain, which your are accessing by adding elements to the
project, is still not a TransactionalEditingDomain. You need to make
sure that the call
AdapterFactoryEditingDomain.getEditingDomainFor(project) returns a
TransactionalEditingDomain.
Which kind of EditingDomain is used by the projet depends on the
provider of the ECPProject. You can see that if you check
ECPProjectImpl#getEditingDomain:

public synchronized EditingDomain getEditingDomain() {
if (editingDomain == null) {
editingDomain = getProvider().createEditingDomain(this);
}
return editingDomain;
}

Which backend provider are you using? Maybe there is transactional
support already available.

Cheers,
Edgar

--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219100 is a reply to message #1218997] Sun, 01 December 2013 21:37 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

the call to "project.getEditingDomain()" returns a "AdapterFactoryEditingDomain".
The provider of the project returned by "project.getProvider()" is "ECPProvider".

How do I get a "TransactionalEditingDomain" for the project based on the above information?

Thanks for your help,
Steffen
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219351 is a reply to message #1219100] Tue, 03 December 2013 13:42 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,

sorry for the delay. Regarding your question: it depends on the backend
provider you are using. The easiest way, at least from my perspective,
would be to use the EMFStore backend provider together with the
transactional support provided by EMFStore.
The transactional support feature is available on the EMFStore update
site (http://download.eclipse.org/emf-store/releases/) under the
'EMFStore Additional Features' section.

Additionally, you will need to adapt your code within your run method:

// this will return a TransactionalEditingDomain
final EditingDomain editingDomain = project[0].getEditingDomain();
....
for (int i = 0; i < 1000; i++) {
final Player createPlayer = createPlayer("Player " + i);
editingDomain.getCommandStack().execute(
// create custom change command
new ChangeCommand(createPlayer) {
@Override
protected void doExecute() {
project[0].getContents().add(createPlayer);
}
});
}

So you need to fetch the CommandStack of the TransactionalEditingDomain
and execute a custom ChangeCommand on it, which holds the code that
modifies the ECP project.

Hope this helps.

Cheers
Edgar

Am 01.12.2013 22:37, schrieb Steffen Lehnert:
> Hi Edgar,
>
> the call to "project.getEditingDomain()" returns a
> "AdapterFactoryEditingDomain".
> The provider of the project returned by "project.getProvider()" is
> "ECPProvider".
>
> How do I get a "TransactionalEditingDomain" for the project based on the
> above information?
>
> Thanks for your help,
> Steffen


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219456 is a reply to message #1219351] Tue, 03 December 2013 22:58 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

thank you for your message and help.
Unfortunately, even with the modified code (I just copied your example) I'm still running into ConcurrentModificationExceptions.
Based on the stacktrace, the EMFStoreProvider is already used (see the attachment).
Also, I've configured my client based on this tutorial if that's of any help to you:
Getting started with EMFStore

Cheers,
Steffen

Edgar Mueller wrote on Tue, 03 December 2013 08:42
Hi Steffen,

sorry for the delay. Regarding your question: it depends on the backend
provider you are using. The easiest way, at least from my perspective,
would be to use the EMFStore backend provider together with the
transactional support provided by EMFStore.
The transactional support feature is available on the EMFStore update
site (http://download.eclipse.org/emf-store/releases/) under the
'EMFStore Additional Features' section.

Additionally, you will need to adapt your code within your run method:

// this will return a TransactionalEditingDomain
final EditingDomain editingDomain = project[0].getEditingDomain();
....
for (int i = 0; i < 1000; i++) {
final Player createPlayer = createPlayer("Player " + i);
editingDomain.getCommandStack().execute(
// create custom change command
new ChangeCommand(createPlayer) {
@Override
protected void doExecute() {
project[0].getContents().add(createPlayer);
}
});
}

So you need to fetch the CommandStack of the TransactionalEditingDomain
and execute a custom ChangeCommand on it, which holds the code that
modifies the ECP project.

Hope this helps.

Cheers
Edgar

Am 01.12.2013 22:37, schrieb Steffen Lehnert:
> Hi Edgar,
>
> the call to "project.getEditingDomain()" returns a
> "AdapterFactoryEditingDomain".
> The provider of the project returned by "project.getProvider()" is
> "ECPProvider".
>
> How do I get a "TransactionalEditingDomain" for the project based on the
> above information?
>
> Thanks for your help,
> Steffen


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich

[Updated on: Tue, 03 December 2013 22:59]

Report message to a moderator

Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219510 is a reply to message #1219456] Wed, 04 December 2013 10:56 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,

copying the modified code is not enough, did you also install the
transactional support for EMFStore? If so, can you check whether it is
present in your running config
(org.eclipse.emf.emfstore.client.transaction and
org.eclipse.emf.transaction)?
For the example I gave the use of a transactional EditingDomain is
mandatory. I tried the example myself and it did work for me.

Cheers,
Edgar

> Hi Edgar,
>
> thank you for your message.
> Unfortunately, even with the modified code (I just copied your example) I'm still running into ConcurrentModificationExceptions.
> Based on the stacktrace, the EMFStoreProvider is already used.
> Also, I've configured my client based on this tutorial if that's of any help to you:
> http://eclipsesource.com/blogs/tutorials/getting-started-with-emfstore/#run
>
> Cheers,
> Steffen
>


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219519 is a reply to message #1219510] Wed, 04 December 2013 11:47 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

the transactional support for EMFStore is installed and both plug-ins are activated in the running configuration:
"org.eclipse.emf.emfstore.client.transaction" v. 1.0.3.20131115-1332
"org.eclipse.emf.transaction" v. 1.4.0.201306111400

The run configuration is set to "Run an application: org.eclipse.emf.ecp.application.e3.application".

I've installed everything from the EMFStore update site (http://download.eclipse.org/emf-store/releases) and everything from the ECP update site (http://download.eclipse.org/emfclient/releases_11).

EDIT
Something that just came to my mind:
Do you have to adjust your EMF-based meta-model in order to integrate it with EMF Model Transaction?

Cheers,
Steffen

[Updated on: Wed, 04 December 2013 11:56]

Report message to a moderator

Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219718 is a reply to message #1219519] Thu, 05 December 2013 14:49 Go to previous messageGo to next message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,

I think I found the problem, my test just worked by coincidence.
The problem is that some getters on the underlying project data
structure are not wrapped in commands. We'll fix this next week.
Thanks for pointing this out. I'll let you know when there is a fix
available for download.

Cheers
Edgar

Am 04.12.2013 12:47, schrieb Steffen Lehnert:
> Hi Edgar,
>
> the transactional support for EMFStore is installed and both plug-ins
> are activated in the running configuration:
> "org.eclipse.emf.emfstore.client.transaction" v. 1.0.3.20131115-1332
> "org.eclipse.emf.transaction" v. 1.4.0.201306111400
>
> The run configuration is set to "Run an application:
> org.eclipse.emf.ecp.application.e3.application".
> I've installed everything from the EMFStore update site
> (http://download.eclipse.org/emf-store/releases) and everything from the
> ECP update site (http://download.eclipse.org/emfclient/releases_11).
>
>
> Cheers,
> Steffen


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1219760 is a reply to message #1219718] Thu, 05 December 2013 16:56 Go to previous messageGo to next message
Steffen Lehnert is currently offline Steffen Lehnert
Messages: 22
Registered: October 2013
Junior Member
Hi Edgar,

thanks for investigating!
I'm looking forward to the new version!

Cheers,
Steffen
Re: [EMF Client Platform] Modifying content of ECPProject in non-UI thread [message #1220816 is a reply to message #1219760] Fri, 13 December 2013 18:57 Go to previous message
Edgar Mueller is currently offline Edgar Mueller
Messages: 54
Registered: March 2011
Member
Hi Steffen,

we found a working solution as of today, but we'll only be able to ship
it next week. Sorry for any inconvenience.

Cheers,
Edgar

> Hi Edgar,
>
> thanks for investigating!
> I'm looking forward to the new version!
>
> Cheers,
> Steffen


--
Edgar Mueller

Get Professional Eclipse Support: http://eclipsesource.com/munich
Previous Topic:[EMFStore] convertToString() exception during share
Next Topic:Validating EMF Models
Goto Forum:
  


Current Time: Sat Sep 20 06:17:49 GMT 2014

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

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