Skip to content

Flow latency analysis crashes when run from instance model editor #2013

@AaronGreenhouse

Description

@AaronGreenhouse

Running "Check Flow Latency" analysis on my iMac fails with an exception

java.lang.IllegalStateException: Cannot modify resource set without a write transaction
	at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.assertWriting(TransactionChangeRecorder.java:349)
	at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.appendNotification(TransactionChangeRecorder.java:303)
	at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.processResourceNotification(TransactionChangeRecorder.java:273)
	at org.eclipse.emf.transaction.impl.TransactionChangeRecorder.notifyChanged(TransactionChangeRecorder.java:239)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
	at org.eclipse.emf.common.notify.impl.NotifyingListImpl.dispatchNotification(NotifyingListImpl.java:261)
	at org.eclipse.emf.common.notify.impl.NotifyingListImpl.addUnique(NotifyingListImpl.java:294)
	at org.eclipse.emf.common.util.AbstractEList.add(AbstractEList.java:304)
	at org.osate.analysis.flows.FlowLatencyUtil.saveAnalysisResult(FlowLatencyUtil.java:544)
	at org.osate.analysis.flows.handlers.CheckFlowLatency.finalizeAnalysis(CheckFlowLatency.java:130)
	at org.osate.ui.handlers.AbstractInstanceOrDeclarativeModelReadOnlyHandler.doAaxlAction(AbstractInstanceOrDeclarativeModelReadOnlyHandler.java:125)
	at org.osate.ui.handlers.AbstractAaxlHandler.processAaxlAction(AbstractAaxlHandler.java:482)
	at org.osate.ui.handlers.AbstractAaxlHandler.actionBody(AbstractAaxlHandler.java:191)
	at org.osate.ui.handlers.AaxlReadOnlyHandlerAsJob$ActionAsJob.runInWorkspace(AaxlReadOnlyHandlerAsJob.java:124)
	at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Upon investigation the TransactionChangeRecorder's editing domain has a null transaction reference when assertWriting is called.

This doesn't seem to happen on any one's Windows machines, or on Joe's MacBook.

I found an old error report on the web that had the same error: https://bugs.eclipse.org/bugs/show_bug.cgi?id=371717

Basically this is a threading issue. There is some missing synchronization somewhere. This isn't an issue on the other computers, I think, because the threads are being managed differently. My computer is newer and has more cores and that is probably what is making the problem appear.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions