Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 314478 - Diagram urls not resolved during start up
Summary: Diagram urls not resolved during start up
Status: RESOLVED FIXED
Alias: None
Product: Tigerstripe
Classification: Technology
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 0.5M0   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-26 10:55 EDT by Richard Craddock CLA
Modified: 2010-07-13 15:15 EDT (History)
1 user (show)

See Also:


Attachments
patch (4.04 KB, patch)
2010-07-06 06:19 EDT, Alena Repina CLA
no flags Details | Diff
PAth to fix missing references (3.33 KB, text/plain)
2010-07-13 12:53 EDT, Richard Craddock CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Craddock CLA 2010-05-26 10:55:02 EDT

    
Comment 1 Richard Craddock CLA 2010-05-26 10:56:09 EDT
This impacts on digram indexing.

Nore the uri really is "null", so theer is not much to look up!



org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'null' not found. (file:/C:/Documents%20and%20Settings/rcraddoc/workspace_XMP_Java/xmp-im-router-redundancy-module/src/com/cisco/xmp/model/managed/vendorSpecificTechnologies/cisco/hsrp/HSRP.vwm, 2, 216)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.handleErrors(XMLLoadImpl.java:83)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:191)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:180)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1494)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1282)
	at org.eclipse.tigerstripe.workbench.ui.visualeditor.adaptation.helpers.ClassDiagramModelFileContentReader.getFQNs(ClassDiagramModelFileContentReader.java:47)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.DiagramHandleIndex.getDiagramContent(DiagramHandleIndex.java:157)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.DiagramHandleIndex.diagramSaved(DiagramHandleIndex.java:76)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.createAllDiagramHandles(ProjectDiagramsSynchronizer.java:488)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.initialize(ProjectDiagramsSynchronizer.java:297)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.access$0(ProjectDiagramsSynchronizer.java:295)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer$2.run(ProjectDiagramsSynchronizer.java:233)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'null' not found. (file:/C:/Documents%20and%20Settings/rcraddoc/workspace_XMP_Java/xmp-im-router-redundancy-module/src/com/cisco/xmp/model/managed/vendorSpecificTechnologies/cisco/hsrp/HSRP.vwm, 2, 216)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getPackageForURI(XMLHandler.java:2590)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getFactoryForPrefix(XMLHandler.java:2421)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectByType(XMLHandler.java:1299)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createTopObject(XMLHandler.java:1468)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1019)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:83)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1001)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:712)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:169)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1359)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1317)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:181)
	... 11 more
Comment 2 Alena Repina CLA 2010-07-06 06:19:21 EDT
Created attachment 173523 [details]
patch

I've found out that Visualeditor model has neither Ns URI nor Ns Prefix specified. Then I've specified them and regenerate model (changes in the patch attached). But after this, loading of old diagrams (with "null" URI specified) fails because there's no such package with URI "null" any longer.
Is there any way to update old diagrams according to new format?
Comment 3 Richard Craddock CLA 2010-07-13 10:08:25 EDT
I'm not sure this is actually fixing the issue (and the thoughtof migrating all the diagrams is a bit scary!).

If this really was the underlying issue, then I would have thought that these diagrams would never load?

I have seem the same error message saying that it cannot find a package that *does* have a namespace (see below).

To me this looks more like a race or loading issue?



org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Package with uri 'org.eclipse.tigerstripe.workbench.ui.instancediagram' not found. (file:/C:/Documents%20and%20Settings/rcraddoc/workspace_XMP_Java/xmp-im-switch-module/src/com/cisco/xmp/model/managed/vendorSpecificTechnologies/cisco/stack/Stack%20Example.owm, 2, 241)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.handleErrors(XMLLoadImpl.java:83)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:191)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:180)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1494)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1282)
	at org.eclipse.tigerstripe.workbench.ui.instancediagram.adaptation.helpers.InstanceDiagramModelFileContentReader.getFQNs(InstanceDiagramModelFileContentReader.java:45)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.DiagramHandleIndex.getDiagramContent(DiagramHandleIndex.java:157)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.DiagramHandleIndex.diagramSaved(DiagramHandleIndex.java:76)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.createAllDiagramHandles(ProjectDiagramsSynchronizer.java:499)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.initialize(ProjectDiagramsSynchronizer.java:300)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer.access$0(ProjectDiagramsSynchronizer.java:298)
	at org.eclipse.tigerstripe.workbench.ui.internal.gmf.synchronization.ProjectDiagramsSynchronizer$2.run(ProjectDiagramsSynchronizer.java:236)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'org.eclipse.tigerstripe.workbench.ui.instancediagram' not found. (file:/C:/Documents%20and%20Settings/rcraddoc/workspace_XMP_Java/xmp-im-switch-module/src/com/cisco/xmp/model/managed/vendorSpecificTechnologies/cisco/stack/Stack%20Example.owm, 2, 241)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getPackageForURI(XMLHandler.java:2590)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getFactoryForPrefix(XMLHandler.java:2421)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectByType(XMLHandler.java:1299)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createTopObject(XMLHandler.java:1468)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1019)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:83)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1001)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:712)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:169)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1359)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1317)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3095)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:181)
Comment 4 Richard Craddock CLA 2010-07-13 11:23:12 EDT
So I have a theory....

To load the diagrams correctly, EMF must have loaded the VisualDiagramPackage (or its equivalent for InstanceDiagrams).

When the base plugin starts up and initiates the indexing, the diagram plugin has not been loaded, so the first few diagrams are loaded before thie package can be resolved by EMF.

When the package is loaded, the remaining diagrams are the correctly loaded.Also on "normal" opening of diagrams - the packages have been loaded.

I have convinced myself of this my noting the timestamps of the calls to getFQN and of the constructor of the package. The diagrams indexed before the package is loaded all fail, whilst those that come after are successfully loaded.

So teh big question is....

How do we ensure that the package has been loaded BEFORE we start indexing?
Comment 5 Richard Craddock CLA 2010-07-13 12:53:43 EDT
Created attachment 174174 [details]
PAth to fix missing references

makes sure the relevant Diagram Packages are loaded
Comment 6 Navid Mehregani CLA 2010-07-13 13:57:07 EDT
Richard, I just verified your patch and it seems to resolve the issue.  I no longer get the exception when I start Tigerstripe with all the XMP models loaded.  I tried restarting TS 4-5 times and I never got the exception.
Comment 7 Richard Craddock CLA 2010-07-13 15:15:53 EDT
Excellent.

This long running saga now looks to be closed!