Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 360108

Summary: [Navigator & Editor Sockets] NullPointerException when attempting to open form editor on damaged model files
Product: [Automotive] Sphinx Reporter: Stephan Eberle <stephaneberle9>
Component: CoreAssignee: Stephan Eberle <stephaneberle9>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: christian.k.2510
Version: 0.7.0   
Target Milestone: 0.7.0   
Hardware: All   
OS: All   
Whiteboard:

Description Stephan Eberle CLA 2011-10-06 10:52:50 EDT
When trying to open a form editor based on BasicTransactionalFormEditor on a model file that is damaged an cannot be loaded the following exception is raised:

java.lang.NullPointerException
	at org.eclipse.sphinx.emf.editors.forms.BasicTransactionalFormEditor$11.resourceSetChanged(BasicTransactionalFormEditor.java:1237)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl$1.run(TransactionalEditingDomainImpl.java:781)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.postcommit(TransactionalEditingDomainImpl.java:771)
	at org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory$DiagramEditingDomain.postcommit(DiagramEditingDomainFactory.java:245)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.deactivate(TransactionalEditingDomainImpl.java:543)
	at org.eclipse.emf.transaction.impl.TransactionImpl.close(TransactionImpl.java:712)
	at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:474)
	at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:333)
	at org.eclipse.sphinx.emf.workspace.loading.ModelLoadManager.loadModelFilesInEditingDomain(ModelLoadManager.java:740)
	at org.eclipse.sphinx.emf.workspace.loading.ModelLoadManager.runLoadModelFiles(ModelLoadManager.java:722)
	at org.eclipse.sphinx.emf.workspace.loading.ModelLoadManager.runCollectAndLoadModelFiles(ModelLoadManager.java:1804)
	at org.eclipse.sphinx.emf.workspace.loading.ModelLoadManager.access$10(ModelLoadManager.java:1760)
	at org.eclipse.sphinx.emf.workspace.loading.ModelLoadManager$12.run(ModelLoadManager.java:1687)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Stephan Eberle CLA 2011-10-07 01:44:37 EDT
Fixed by making BasicTransactionalFormEditor#createObjectRemovedListener() more robust. 

Made also sure that unsuccessful load attempts don't trigger subsequent load attempts by moving call to ModelLoadManager#loadModel(IModelDescriptor, boolean, IProgressMonitor) from BasicTransactionalFormEditor#getModelRoot() to BasicTransactionalFormEditor#createPages() and improving implementation of BasicTransactionalFormEditor#createResourceLoadedListener() and BasicTransactionalFormEditor#createResourceRemovedListener().
Comment 2 Balazs Grill CLA 2021-07-14 02:15:58 EDT
Mass-closing Resolved tickets