Bug 469351 - Opening a session with an invalid semantic model should give a more meaningful feedback to the user (than an exception)
Summary: Opening a session with an invalid semantic model should give a more meaningfu...
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: 1.0.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2015-06-04 03:24 EDT by EPP Error Reports CLA
Modified: 2015-06-30 08:36 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-06-04 03:24:07 EDT
The following incident was reported via the automated error reporting:

The user provided the following details for this incident:



    code:                   0
    plugin:                 org.eclipse.sirius_1.0.0.201406040902
    message:                Can't handle resource change : platform:/resource/sdfsdf/model/sdfsdf.ecore
    fingerprint:            78a5d763
    exception class:        org.eclipse.emf.ecore.resource.Resource$IOWrappedException
    exception message:      Package with uri 'http://www.eclipse.org/emf/2002/EcoreQuinexistepas' not found. (platform:/resource/sdfsdf/model/sdfsdf.ecore, 3, 140)
    number of children:     0
    
    org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'http://www.eclipse.org/emf/2002/EcoreQuinexistepas' not found. (platform:/resource/sdfsdf/model/sdfsdf.ecore, 3, 140)
    at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.handleErrors(XMLLoadImpl.java:77)
    at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:185)
    at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:253)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1518)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1297)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl$2.run(DAnalysisSessionImpl.java:1541)
    at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.reloadResource(DAnalysisSessionImpl.java:1549)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.processAction(DAnalysisSessionImpl.java:1489)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.processActions(DAnalysisSessionImpl.java:1478)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.statusesChanged(DAnalysisSessionImpl.java:1396)
    at org.eclipse.sirius.common.tools.api.resource.ResourceSetSync.notifyClientsInBatch(ResourceSetSync.java:365)
    at org.eclipse.sirius.common.tools.api.resource.ResourceSetSync.statusesChanged(ResourceSetSync.java:414)
    at org.eclipse.sirius.common.tools.internal.resource.ResourceSyncClientNotifier.run(ResourceSyncClientNotifier.java:76)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'http://www.eclipse.org/emf/2002/EcoreQuinexistepas' not found. (platform:/resource/sdfsdf/model/sdfsdf.ecore, 3, 140)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getPackageForURI(XMLHandler.java:2625)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getFactoryForPrefix(XMLHandler.java:2458)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectByType(XMLHandler.java:1335)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createTopObject(XMLHandler.java:1504)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1026)
    at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:77)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1008)
    at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:719)
    at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:163)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(null:-1)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(null:-1)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(null:-1)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(null:-1)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(null:-1)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(null:-1)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(null:-1)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(null:-1)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(null:-1)
    at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175)
    at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:253)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1518)
    at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1297)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl$2.run(DAnalysisSessionImpl.java:1541)
    at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.reloadResource(DAnalysisSessionImpl.java:1549)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.processAction(DAnalysisSessionImpl.java:1489)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.processActions(DAnalysisSessionImpl.java:1478)
    at org.eclipse.sirius.business.internal.session.danalysis.DAnalysisSessionImpl.statusesChanged(DAnalysisSessionImpl.java:1396)
    at org.eclipse.sirius.common.tools.api.resource.ResourceSetSync.notifyClientsInBatch(ResourceSetSync.java:365)
    at org.eclipse.sirius.common.tools.api.resource.ResourceSetSync.statusesChanged(ResourceSetSync.java:414)
    at org.eclipse.sirius.common.tools.internal.resource.ResourceSyncClientNotifier.run(ResourceSyncClientNotifier.java:76)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
   
  

General Information:

    reported-by:      Cédric Brun
    anonymous-id:     5a02004c-cc29-334e-aa19-a40fc8b46f85
    eclipse-build-id: 4.5.0.I20140917-0800
    eclipse-product:  org.eclipse.epp.package.modeling.product
    operating system: Linux 3.11.10 (x86_64) - gtk
    jre-version:      1.8.0-ea-b108

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.jobs_3.6.100.v20140821-1523
    2. org.eclipse.emf.ecore_2.10.0.v20140514-1158
    3. org.eclipse.emf_2.6.0.v20140519-0339
    4. org.eclipse.emf.ecore.xmi_2.10.0.v20140514-1158
    5. org.eclipse.emf.transaction_1.8.0.201408201707
    6. org.eclipse.sirius_1.0.0.201406040902
    7. org.eclipse.sirius.common_1.0.0.201406040902

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/54c4eea3bee810030da05d8c  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Maxime Porhel CLA 2015-06-05 11:46:26 EDT
Step to reproduce: 
 . Create an Ecore Modeling project / a modeling project with an ecore model
 . Activate the EcoreTools or the test Design Viewpoint
 . Make sure the session is opened, and the domain model loaded
 . Open the ecore model in a text editor and corrupt the xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" tag (add something at the end)
 . Save, the reload of the semantic resource will produce the reported stack.


If the same modification is done when the session is closed (remove the modeling project nature, close the session, and modify the ecore file). The session will open and the error will be added to the error map of the resource which will not be loaded.

It seems we could improve the reload situation (and may be also indicate after the session opening thaht something went wrong).
Comment 2 Pierre-Charles David CLA 2015-06-30 08:36:14 EDT
Note that his problem can also manifest itself with other kinds of errors, for example:

  org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'XXX' not found.

when loading/attaching the semantic resources during session opening (or at other times).