Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 334852 - Workflow for Domainmodel demo project is missing org.apache.commons.logging.Log
Summary: Workflow for Domainmodel demo project is missing org.apache.commons.logging.Log
Status: CLOSED FIXED
Alias: None
Product: TMF
Classification: Modeling
Component: Xtext (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 minor (vote)
Target Milestone: M6   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-20 02:36 EST by Mirko Raner CLA
Modified: 2017-09-19 18:05 EDT (History)
1 user (show)

See Also:
sven.efftinge: indigo+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mirko Raner CLA 2011-01-20 02:36:14 EST
Build Identifier: Indigo M4, Xtext 2.0.0 M4, Xtext ANTLR SDK 2.0.0 M3

In a fresh installation of Indigo M4 with a clean workspace the initial build of the "Domainmodel" demo fails with an exception in the MWE2 workflow:

2    [main] ERROR mf.mwe2.launch.runtime.Mwe2Launcher  - Lorg/apache/commons/logging/Log;
java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Class.java:2259)
	at java.lang.Class.getDeclaredFields(Class.java:1715)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createFields(DeclaredTypeFactory.java:272)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createType(DeclaredTypeFactory.java:81)
	at org.eclipse.xtext.common.types.access.impl.DeclaredTypeFactory.createType(DeclaredTypeFactory.java:1)
	at org.eclipse.xtext.common.types.access.impl.ClassMirror.initialize(ClassMirror.java:42)
	at org.eclipse.xtext.common.types.access.TypeResource.doLoad(TypeResource.java:86)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1494)
	at org.eclipse.xtext.common.types.access.TypeResource.load(TypeResource.java:74)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:255)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:270)
	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.common.types.access.impl.ClasspathTypeProvider.findTypeByName(ClasspathTypeProvider.java:65)
	at org.eclipse.xtext.common.types.xtext.AbstractTypeScope.getLocalElements(AbstractTypeScope.java:55)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getElements(AbstractScope.java:55)
	at org.eclipse.xtext.linking.impl.ImportedNamesAdapter$WrappingScope.getElements(ImportedNamesAdapter.java:55)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getElements(AbstractScope.java:57)
	at org.eclipse.xtext.scoping.impl.ImportScope.getElements(ImportScope.java:88)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getElements(AbstractScope.java:57)
	at org.eclipse.xtext.scoping.impl.ImportScope.getElements(ImportScope.java:88)
	at org.eclipse.xtext.scoping.impl.ImportScope$4.apply(ImportScope.java:147)
	at org.eclipse.xtext.scoping.impl.ImportScope$4.apply(ImportScope.java:1)
	at com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:431)
	at java.util.AbstractList$Itr.next(AbstractList.java:422)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:602)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:135)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:130)
	at com.google.common.collect.Iterators$8.hasNext(Iterators.java:693)
	at com.google.common.collect.Iterators$5.hasNext(Iterators.java:504)
	at org.eclipse.xtext.scoping.impl.ImportScope$5.iterator(ImportScope.java:166)
	at com.google.common.collect.Iterables$3.apply(Iterables.java:422)
	at com.google.common.collect.Iterables$3.apply(Iterables.java:420)
	at com.google.common.collect.Iterators$8.next(Iterators.java:697)
	at com.google.common.collect.Iterators$5.hasNext(Iterators.java:505)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:601)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:135)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:130)
	at com.google.common.collect.Iterators$5.hasNext(Iterators.java:504)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getSingleElement(AbstractScope.java:47)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:114)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:168)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:219)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:202)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:262)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1483)
	at org.eclipse.emf.mwe2.language.mwe2.impl.ReferrableImpl.getType(ReferrableImpl.java:98)
	at org.eclipse.emf.mwe2.language.mwe2.impl.ReferrableImpl.eGet(ReferrableImpl.java:177)
	at org.eclipse.emf.mwe2.language.mwe2.impl.ComponentImpl.eGet(ComponentImpl.java:220)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1021)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:1013)
	at org.eclipse.emf.ecore.util.EContentsEList$FeatureIteratorImpl.hasNext(EContentsEList.java:409)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveCrossReferences(EcoreUtil.java:307)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolveAll(EcoreUtil.java:301)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:82)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:75)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:66)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:57)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
	at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)

Adding a Require-Bundle for org.apache.commons.logging in the MANIFEST.MF for org.eclipse.xtext.example.domainmodel fixes this problem.

I'm not exactly sure why commons.logging is not on the classpath when the Mwe2Launcher is executed. org.apache.commons.cli (which is a required bundle) does have a dependency on commons.logging but does not reexport it. org.eclipse.emf.mwe.utils imports the org.apache.commons.logging package, but does not specifically require the bundle (i.e., leaving it open where the package eventually comes from). Since the Mwe2Launcher is not run as an Eclipse plug-in the resolution might be slightly different from what it would be for running an actual plug-in.


Reproducible: Always
Comment 1 Sven Efftinge CLA 2011-03-26 15:51:28 EDT
was fixed in M6
Comment 2 Karsten Thoms CLA 2017-09-19 17:54:31 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 3 Karsten Thoms CLA 2017-09-19 18:05:23 EDT
Closing all bugs that were set to RESOLVED before Neon.0