Bug 410516 - error saving model: object not contained in a resource
Summary: error saving model: object not contained in a resource
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 2.0.1   Edit
Assignee: Miles Parker CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-11 13:57 EDT by Sam Davis CLA
Modified: 2013-06-20 19:18 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam Davis CLA 2013-06-11 13:57:05 EDT
I got this error after posting inline comments on a merged review.

Couldn't save model.

org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'org.eclipse.mylyn.reviews.internal.core.model.User@119cf86 (id: null, email: null, displayName: <Undefined>)' is not contained in a resource.
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:307)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:271)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:333)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1423)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.saveOnlyIfChangedWithMemoryBuffer(ResourceImpl.java:1137)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:978)
	at org.eclipse.mylyn.reviews.spi.edit.remote.AbstractRemoteEditFactoryProvider.save(AbstractRemoteEditFactoryProvider.java:289)
	at org.eclipse.mylyn.reviews.spi.edit.remote.AbstractRemoteEditFactoryProvider.save(AbstractRemoteEditFactoryProvider.java:270)
	at org.eclipse.mylyn.reviews.core.spi.remote.emf.RemoteEmfConsumer.save(RemoteEmfConsumer.java:413)
	at org.eclipse.mylyn.internal.gerrit.core.GerritTaskDataHandler.updateModelData(GerritTaskDataHandler.java:210)
	at org.eclipse.mylyn.internal.gerrit.core.GerritTaskDataHandler.getTaskData(GerritTaskDataHandler.java:114)
	at org.eclipse.mylyn.internal.gerrit.core.GerritConnector.getTaskData(GerritConnector.java:160)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.synchronizeTask(SynchronizeTasksJob.java:245)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.runInternal(SynchronizeTasksJob.java:218)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.run(SynchronizeTasksJob.java:153)
	at org.eclipse.mylyn.internal.tasks.core.sync.SynchronizeTasksJob.run(SynchronizeTasksJob.java:129)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.emf.ecore.xmi.DanglingHREFException: The object 'org.eclipse.mylyn.reviews.internal.core.model.User@119cf86 (id: null, email: null, displayName: <Undefined>)' is not contained in a resource.
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.handleDanglingHREF(XMLHelperImpl.java:760)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getURIFragment(XMLHelperImpl.java:731)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getIDREF(XMLHelperImpl.java:753)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveIDRefSingle(XMLSaveImpl.java:1988)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1329)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedSingle(XMLSaveImpl.java:2399)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1543)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1177)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElement(XMLSaveImpl.java:1038)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveContainedMany(XMLSaveImpl.java:2413)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1549)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveFeatures(XMLSaveImpl.java:1220)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.saveElementID(XMLSaveImpl.java:2712)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.writeTopObject(XMLSaveImpl.java:683)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.traverse(XMLSaveImpl.java:591)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:257)
	... 15 more
Comment 1 Steffen Pingel CLA 2013-06-11 14:01:56 EDT
Thanks Sam, that looks important to fix.
Comment 2 Miles Parker CLA 2013-06-11 14:08:15 EDT
Yeah, for sure. This is top-priority.
Comment 3 Miles Parker CLA 2013-06-11 15:21:42 EDT
Though any EMF persistence related issues are worrying, I think this might be spurious or at least easily recoverable. Looking at Sam's data, everything seems to be consistent and valid. Steffen, Sam was able to recover by simply refreshing task -- thinking about downgrading P and putting to 2.0.1?
Comment 4 Miles Parker CLA 2013-06-11 17:21:25 EDT
Postponing to 2.0.1. If anyone sees this, please update the bug. Work-around is simply to refresh the review.
Comment 5 Steffen Pingel CLA 2013-06-11 18:54:40 EDT
I tried to reproduce by rebasing change sets but didn't run into the error. I never saw an "<Undefined>" user in the persisted repository file so I'm not sure how to get into that state.
Comment 6 Sam Davis CLA 2013-06-12 12:49:10 EDT
I think draft comments might have the user "<Undefined>."
Comment 7 Miles Parker CLA 2013-06-12 14:44:44 EDT
(In reply to comment #5)
> I tried to reproduce by rebasing change sets but didn't run into the error. I
> never saw an "<Undefined>" user in the persisted repository file so I'm not sure
> how to get into that state.

Yeah, I've never seen it either.

(In reply to comment #6)
> I think draft comments might have the user "<Undefined>."

I just verified that this isn't the case. The only way you can have Undefined for an added comment I think is if some reason there wasn't an "added by" in the file item that was commented on, and I can't think of any reason that that would happen... It's sort of a mystery.
Comment 8 Miles Parker CLA 2013-06-13 21:08:29 EDT
Ok, I think I just made this happen by clicking on a URL link to a review for which I *wasn't* already a reviewer. Could explain why this one has been difficult to reproduce.
Comment 9 Miles Parker CLA 2013-06-20 19:18:09 EDT
Also fixed by https://git.eclipse.org/r/#/c/13829/