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

Bug 329407

Summary: org.eclipse.xtext.tests/AllTests fails on Eclipse SDK 3.6.1 + Xtext SDK 1.0.1 target
Product: [Modeling] TMF Reporter: Ralf Ebert <ralf>
Component: XtextAssignee: Project Inbox <tmf.xtext-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: sebastian.zarnekow
Version: 1.0.1Flags: sebastian.zarnekow: helios+
Target Milestone: SR2   
Hardware: PC   
OS: Linux-GTK   
Whiteboard:
Attachments:
Description Flags
0001-removed-dependency-to-org.eclipse.xtend.util.stdlib-.patch none

Description Ralf Ebert CLA 2010-11-03 18:49:47 EDT
Using Eclipse SDK 3.6.1.M20100909-0800 + Xtext SDK 1.0.1.v201008251220 in the target and org.eclipse.xtext.tests v1.0.1-6-g5eb3626 in the workspace

- org.eclipse.xtext.tests MANIFEST.MF declares a dependency to org.eclipse.xtend.util.stdlib, which doesn't seem to exist in the SDK or the xtext repo. I removed the dependency and it compiles.
- When executing the tests, I get 79 errors then because of exceptions like:

com.google.inject.ProvisionException: Guice provision errors:

1) Error injecting method, org.eclipse.emf.common.util.WrappedException: org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'null' not found. (classpath:/org/eclipse/xtext/XtextGrammarTestLanguage.xmi, 149, 78)
  at org.eclipse.xtext.conversion.impl.AbstractDeclarativeValueConverterService.setGrammar(AbstractDeclarativeValueConverterService.java:50)
  while locating org.eclipse.xtext.common.services.DefaultTerminalConverters
  while locating org.eclipse.xtext.conversion.IValueConverterService
    for field at org.eclipse.xtext.linking.impl.LinkingHelper.valueConverter(LinkingHelper.java:25)
  while locating org.eclipse.xtext.linking.impl.LinkingHelper
    for field at org.eclipse.xtext.parsetree.reconstr.impl.CrossReferenceSerializer.linkingHelper(CrossReferenceSerializer.java:32)
  while locating org.eclipse.xtext.parsetree.reconstr.impl.CrossReferenceSerializer
  while locating org.eclipse.xtext.parsetree.reconstr.ITokenSerializer$ICrossReferenceSerializer
    for field at org.eclipse.xtext.parsetree.reconstr.impl.AbstractParseTreeConstructor.crossRefSerializer(AbstractParseTreeConstructor.java:58)
  while locating org.eclipse.xtext.parseTreeConstruction.XtextGrammarTestLanguageParsetreeConstructor
  while locating org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor
    for parameter 0 at org.eclipse.xtext.parsetree.reconstr.Serializer.<init>(Serializer.java:38)
  while locating org.eclipse.xtext.parsetree.reconstr.Serializer
    for field at org.eclipse.xtext.resource.XtextResource.serializer(XtextResource.java:349)
  while locating org.eclipse.xtext.linking.lazy.LazyLinkingResource
  while locating org.eclipse.xtext.resource.XtextResource
Caused by: org.eclipse.emf.common.util.WrappedException: org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'null' not found. (classpath:/org/eclipse/xtext/XtextGrammarTestLanguage.xmi, 149, 78)
	at org.eclipse.xtext.parser.BaseEPackageAccess.loadResource(BaseEPackageAccess.java:57)
	at org.eclipse.xtext.parser.BaseEPackageAccess.loadGrammarFile(BaseEPackageAccess.java:44)
	at org.eclipse.xtext.service.GrammarProvider.getGrammar(GrammarProvider.java:49)
	at org.eclipse.xtext.services.XtextGrammarTestLanguageGrammarAccess.getGrammar(XtextGrammarTestLanguageGrammarAccess.java:1575)
	at org.eclipse.xtext.conversion.impl.AbstractDeclarativeValueConverterService.setGrammar(AbstractDeclarativeValueConverterService.java:50)
	at $org.eclipse.xtext.conversion.impl.AbstractDeclarativeValueConverterService$$FastClassByGuice$$7fdb40ee.invoke(<generated>)
	at com.google.inject.internal.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
	at com.google.inject.SingleMethodInjector$1.invoke(SingleMethodInjector.java:59)
	at com.google.inject.SingleMethodInjector.inject(SingleMethodInjector.java:91)
	at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
	at com.google.inject.SingleFieldInjector.inject(SingleFieldInjector.java:56)
	at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.SingleFieldInjector.inject(SingleFieldInjector.java:56)
	at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.InjectorImpl$3.get(InjectorImpl.java:549)
	at com.google.inject.SingleFieldInjector.inject(SingleFieldInjector.java:56)
	at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
	at com.google.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
	at com.google.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:84)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.SingleFieldInjector.inject(SingleFieldInjector.java:56)
	at com.google.inject.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:99)
	at com.google.inject.ConstructorInjector.construct(ConstructorInjector.java:94)
	at com.google.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:111)
	at com.google.inject.FactoryProxy.get(FactoryProxy.java:56)
	at com.google.inject.InjectorImpl$4$1.call(InjectorImpl.java:758)
	at com.google.inject.InjectorImpl.callInContext(InjectorImpl.java:804)
	at com.google.inject.InjectorImpl$4.get(InjectorImpl.java:754)
	at org.eclipse.xtext.resource.XtextResourceFactory.createResource(XtextResourceFactory.java:19)
	at org.eclipse.xtext.junit.AbstractXtextTests.doGetResource(AbstractXtextTests.java:305)
	at org.eclipse.xtext.junit.AbstractXtextTests.getResourceAndExpect(AbstractXtextTests.java:284)
	at org.eclipse.xtext.junit.AbstractXtextTests.getResourceAndExpect(AbstractXtextTests.java:272)
	at org.eclipse.xtext.junit.AbstractXtextTests.getModelAndExpect(AbstractXtextTests.java:244)
	at org.eclipse.xtext.junit.AbstractXtextTests.getModelAndExpect(AbstractXtextTests.java:240)
	at org.eclipse.xtext.XtextGrammarTest.testInstantiate(XtextGrammarTest.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:232)
	at junit.framework.TestSuite.run(TestSuite.java:227)
	at junit.framework.TestSuite.runTest(TestSuite.java:232)
	at junit.framework.TestSuite.run(TestSuite.java:227)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
	at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.run(CoreTestApplication.java:23)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:587)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:198)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'null' not found. (classpath:/org/eclipse/xtext/XtextGrammarTestLanguage.xmi, 149, 78)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:315)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:397)
	at org.eclipse.xtext.resource.SynchronizedXtextResourceSet.getResource(SynchronizedXtextResourceSet.java:23)
	at org.eclipse.xtext.parser.BaseEPackageAccess.loadResource(BaseEPackageAccess.java:52)
	... 84 more
Caused by: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'null' not found. (classpath:/org/eclipse/xtext/XtextGrammarTestLanguage.xmi, 149, 78)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromTypeName(XMLHandler.java:2082)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObject(XMLHandler.java:2031)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.createObject(XMIHandler.java:134)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1840)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1023)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:87)
	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:504)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1340)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2732)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:741)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:181)
	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.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:255)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:270)
	... 87 more
Comment 1 Sebastian Zarnekow CLA 2010-11-03 18:51:50 EDT
Workaround: You have to regenerate the test-languages.
Comment 2 Ralf Ebert CLA 2010-11-04 04:53:13 EDT
Created attachment 182354 [details]
0001-removed-dependency-to-org.eclipse.xtend.util.stdlib-.patch

Generation of all test languages now fails because of

Caused by: java.io.IOException: The path '/org.eclipse.xtext/src/org/eclipse/xtext/Xtext.genmodel' is unmapped
	at org.eclipse.emf.ecore.resource.impl.PlatformResourceURIHandlerImpl.createInputStream(PlatformResourceURIHandlerImpl.java:462)
	at org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl.createInputStream(ExtensibleURIConverterImpl.java:301)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1254)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:255)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:270)
	... 18 more
Comment 3 Ralf Ebert CLA 2010-11-04 13:12:46 EDT
Besides the 'Xtext.genmodel is unmapped exception', which seems to only affect the generation of MetamodelRefTestLanguage, umlauts are destroyed by generating on Linux, f.e. in EncodingTestLanguage.xmi:

-      <elements xsi:type="xtext:Keyword" value="&#xe4;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xf6;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xfc;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xdf;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xc4;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xd6;"/>
-      <elements xsi:type="xtext:Keyword" value="&#xdc;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
+      <elements xsi:type="xtext:Keyword" value="&#xfffd;"/>
Comment 4 Sebastian Zarnekow CLA 2010-11-05 10:40:47 EDT
(In reply to comment #3)
> Besides the 'Xtext.genmodel is unmapped exception', which seems to only affect
> the generation of MetamodelRefTestLanguage, umlauts are destroyed by generating
> on Linux, f.e. in EncodingTestLanguage.xmi:

Can you confirm that you defined ISO-8859-1 as the workspace encoding or at least pass this as the default encoding to the mwe2 process?
Comment 5 Sebastian Zarnekow CLA 2010-11-05 10:41:17 EDT
Regenerated testlanguages and examples in branch Helios_Maintenance
Comment 6 Ralf Ebert CLA 2010-11-06 15:37:13 EDT
(In reply to comment #4)
> Can you confirm that you defined ISO-8859-1 as the workspace encoding or at
> least pass this as the default encoding to the mwe2 process?
No, i assumed this should work out of the box because the Project's text file encoding is 'ISO-8859-1'.

btw, these issues are still present (see attached patch):

1) 'QualifiedNameTestLanguage' vs. 'QualifiedNameTest_l_anguage' (case-sensitive filename)
2) 'org.eclipse.xtend.util.stdlib' is not in Xtext SDK, but required by tests-plug-in.
Comment 7 Sebastian Zarnekow CLA 2010-11-06 16:39:16 EDT
see comment #6
Comment 8 Sebastian Zarnekow CLA 2010-11-08 03:29:41 EST
Please note that I'll not remove the dep to org.eclipse.xtend.util.stdlib as I cannot foresee the consequences for existing clients who possibly rely on this one (by accident) in a plain java environment.

I fixed the MWE2 file in master and in the maintenance branch.
Comment 9 Ralf Ebert CLA 2010-11-08 16:50:36 EST
(In reply to comment #8)
> Please note that I'll not remove the dep to org.eclipse.xtend.util.stdlib as I
> cannot foresee the consequences for existing clients who possibly rely on this
> one (by accident) in a plain java environment.

Ok, that's fair. How about removing it in 2.x or about adding the missing plug-in to the Xtext SDK feature? IMHO org.eclipse.xtext.tests should work out of the box on top of the Xtext SDK feature.
Comment 10 Sebastian Zarnekow CLA 2010-11-08 17:41:11 EST
(In reply to comment #9)
> How about removing it in 2.x 

Removed obsolete dependencies from xtext.tests.
Comment 11 Karsten Thoms CLA 2017-09-19 17:28:18 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 12 Karsten Thoms CLA 2017-09-19 17:39:27 EDT
Closing all bugs that were set to RESOLVED before Neon.0