Community
Participate
Working Groups
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)
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().
Mass-closing Resolved tickets