Skip to main content



      Home
Home » Eclipse Projects » Sirius » Closing a session without a write transaction(Always getting: )
Closing a session without a write transaction [message #1771904] Thu, 31 August 2017 17:10 Go to next message
Eclipse UserFriend
I have tried closing a session using a CloseUISessionCommand but this doesn't reliably close the session. The only thing that seems to work is calling a close directly on the session (e.g. session->close), but this always generates the following IllegalStateException:

05:04:43:134 EDT at 31-Aug-2017 WARNING bundle:org.eclipse.sirius Thr:1 Error while unloading an unaccessible resource:
Cannot modify resource set without a write transaction
  Caused by: java.lang.IllegalStateException: Cannot modify resource set without a write transaction
  Cannot modify resource set without a write transaction
    org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting(TransactionChangeRecorder.java:348)
    org.eclipse.emf.transaction.impl.TransactionChangeRecorder.appendNotification(TransactionChangeRecorder.java:302)
    org.eclipse.emf.transaction.impl.TransactionChangeRecorder.processResourceNotification(TransactionChangeRecorder.java:272)
    org.eclipse.emf.transaction.impl.TransactionChangeRecorder.notifyChanged(TransactionChangeRecorder.java:238)
    org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
    org.eclipse.emf.common.notify.impl.NotifyingListImpl.dispatchNotification(NotifyingListImpl.java:261)
    org.eclipse.emf.common.notify.impl.NotifyingListImpl.clear(NotifyingListImpl.java:1090)
    org.eclipse.emf.ecore.resource.impl.ResourceImpl.doUnload(ResourceImpl.java:1641)
    org.eclipse.emf.ecore.resource.impl.ResourceImpl.unload(ResourceImpl.java:1663)
    org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.unloadAllResources(DAnalysisSessionImpl.java:1333)
    org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.close(DAnalysisSessionImpl.java:1228)


It would be a great help if someone can explain the best practice as I haven't seen any standard documentation on this.

[Updated on: Thu, 31 August 2017 17:15] by Moderator

Re: Closing a session without a write transaction [message #1771957 is a reply to message #1771904] Fri, 01 September 2017 10:05 Go to previous messageGo to next message
Eclipse UserFriend
Hello

Which version of Sirius do you use? I bet that will not reproduce with sirius5 because we don't unload the resource any more at close.

You said Quote:
using a CloseUISessionCommand ... doesn't reliably close the session
.
What do you mean? Could you detail what's wrong? This command will save the session if needed and close the opened editor and then close the session.

Nevertheless, this command is internal. Session.close() is the recommended way to close a session.
Do you have a reproducible scenario?

Regards
Laurent

Re: Closing a session without a write transaction [message #1771960 is a reply to message #1771957] Fri, 01 September 2017 10:47 Go to previous message
Eclipse UserFriend
I'm using 3.1.1. Unfortunately we cannot move to a newer version for awhile.

I don't really have much to reproduce. Whenever I call session.close I get that error, and it sometimes propagates to a pop-up dialog which is even worse. I tried the CloseUISessionCommand but it seems like it doesn't always close the session when I check the logs (possibly because of the error that we're talking about).

I would just like to find a way to avoid seeing that error triggered... or if nothing else, to catch it more gracefully.
Previous Topic:Memory leaks in Sirius?
Next Topic:Automatically scroll to center diagram when element is selected
Goto Forum:
  


Current Time: Wed Jul 23 17:01:55 EDT 2025

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

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

Back to the top