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

Bug 364905

Summary: Specify Version Range for Google Guice Dependency
Product: [Modeling] TMF Reporter: Marcel Bruch <marcel.bruch>
Component: XtextAssignee: Project Inbox <tmf.xtext-inbox>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: sven.efftinge
Version: unspecifiedFlags: sven.efftinge: juno+
Target Milestone: M4   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Bug Depends on: 363632    
Bug Blocks:    

Description Marcel Bruch CLA 2011-11-27 03:46:33 EST
Hi,

we use Google Guice 3.0 for Code Recommenders. In 3.0 com/google/inject/internal/Maps does not exist anymore. It moved to com/google/inject/internal/util/Maps.

I assume that Xtext does not specify a version range for its Guice dependency and accidentially uses a later version as soon as it is available. This issue will probably lead to problems with every other plug-in that uses Guice in a later version. The stacktrace below. 


If you like to update to the latest Google Guice / Inject version: 3.0.0 has already passed IP check. See CQ [5058] for details.

Related CQs:
[5058]	Google Guice / Inject Core API Version: 3.0.0
[5059]	guice-assistedinject Version: 3.0.0
[5060]	guice-multibindings Version: 3.0.0

Thanks, Marcel


java.lang.NoClassDefFoundError: com/google/inject/internal/Maps
	at org.eclipse.xtext.common.types.impl.JvmDeclaredTypeImplCustom.internalGetAllFeaturesMap(JvmDeclaredTypeImplCustom.java:155)
	at org.eclipse.xtext.common.types.impl.JvmDeclaredTypeImplCustom.getAllFeaturesMap(JvmDeclaredTypeImplCustom.java:149)
	at org.eclipse.xtext.common.types.impl.JvmDeclaredTypeImplCustom.findAllFeaturesByName(JvmDeclaredTypeImplCustom.java:100)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultFeaturesForTypeProvider.collectFeatures(DefaultFeaturesForTypeProvider.java:66)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultFeaturesForTypeProvider.doGetFeaturesByName(DefaultFeaturesForTypeProvider.java:46)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultFeaturesForTypeProvider.getFeaturesByName(DefaultFeaturesForTypeProvider.java:35)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultJvmFeatureDescriptionProvider.getFeaturesByName(DefaultJvmFeatureDescriptionProvider.java:115)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultJvmFeatureDescriptionProvider.doCollectDescriptions(DefaultJvmFeatureDescriptionProvider.java:98)
	at org.eclipse.xtext.xbase.scoping.featurecalls.DefaultJvmFeatureDescriptionProvider.getDescriptionsByName(DefaultJvmFeatureDescriptionProvider.java:79)
	at org.eclipse.xtext.xbase.scoping.featurecalls.LazyJvmFeatureScopeStrategy.getDescriptionsByName(LazyJvmFeatureScopeStrategy.java:42)
	at org.eclipse.xtext.xbase.scoping.featurecalls.LazyJvmFeatureScope.getLocalElementsByName(LazyJvmFeatureScope.java:45)
	at org.eclipse.xtext.xbase.scoping.featurecalls.FilteredDelegatingScope.getLocalElementsByName(FilteredDelegatingScope.java:59)
	at org.eclipse.xtext.xbase.scoping.featurecalls.FilteredDelegatingScope.getElements(FilteredDelegatingScope.java:105)
	at org.eclipse.xtext.xbase.scoping.DelegatingScope.getLocalElementsByName(DelegatingScope.java:50)
	at org.eclipse.xtext.scoping.impl.AbstractScope.getElements(AbstractScope.java:128)
	at org.eclipse.xtext.scoping.impl.AbstractScope$2.get(AbstractScope.java:135)
	at org.eclipse.xtext.scoping.impl.AbstractScope$2.get(AbstractScope.java:1)
	at org.eclipse.xtext.scoping.impl.AbstractScope$ParentIterable.iterator(AbstractScope.java:59)
	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.xbase.linking.BestMatchingJvmFeatureScope.getBestMatch(BestMatchingJvmFeatureScope.java:117)
	at org.eclipse.xtext.xbase.linking.BestMatchingJvmFeatureScope.getSingleElement(BestMatchingJvmFeatureScope.java:78)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:121)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:175)
	at org.eclipse.xtext.xbase.resource.XbaseResource.access$0(XbaseResource.java:1)
	at org.eclipse.xtext.xbase.resource.XbaseResource$2.exec(XbaseResource.java:227)
	at org.eclipse.xtext.xbase.resource.XbaseResource$2.exec(XbaseResource.java:1)
	at org.eclipse.xtext.util.OnChangeEvictingCache.execWithoutCacheClear(OnChangeEvictingCache.java:121)
	at org.eclipse.xtext.xbase.resource.XbaseResource.getEObject(XbaseResource.java:225)
	at org.eclipse.xtext.xtend2.resource.Xtend2Resource.getEObject(Xtend2Resource.java:88)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:219)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:203)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:263)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1483)
	at org.eclipse.xtext.xbase.impl.XAbstractFeatureCallImpl.getFeature(XAbstractFeatureCallImpl.java:161)
	at org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.computeFeatureCallHighlighting(XbaseHighlightingCalculator.java:147)
	at org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.searchAndHighlightElements(XbaseHighlightingCalculator.java:114)
	at org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.doProvideHighlightingFor(XbaseHighlightingCalculator.java:106)
	at org.eclipse.xtext.xtend2.ui.highlighting.XtendHighlightingCalculator.doProvideHighlightingFor(XtendHighlightingCalculator.java:93)
	at org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingCalculator.provideHighlightingFor(XbaseHighlightingCalculator.java:86)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.MergingHighlightedPositionAcceptor.provideHighlightingFor(MergingHighlightedPositionAcceptor.java:51)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler.reconcilePositions(HighlightingReconciler.java:87)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler.modelChanged(HighlightingReconciler.java:275)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler$1.process(HighlightingReconciler.java:246)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler$1.process(HighlightingReconciler.java:1)
	at org.eclipse.xtext.util.concurrent.IUnitOfWork$Void.exec(IUnitOfWork.java:36)
	at org.eclipse.xtext.util.concurrent.AbstractReadWriteAcces.readOnly(AbstractReadWriteAcces.java:32)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:78)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler.refresh(HighlightingReconciler.java:243)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler.install(HighlightingReconciler.java:197)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingHelper.enable(HighlightingHelper.java:82)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingHelper.install(HighlightingHelper.java:70)
	at org.eclipse.xtext.ui.editor.XtextEditor.installHighlightingHelper(XtextEditor.java:466)
	at org.eclipse.xtext.ui.editor.XtextEditor.createPartControl(XtextEditor.java:429)
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:289)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2945)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2850)
	at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2842)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2793)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2789)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2773)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2764)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
	at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:355)
	at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:164)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:249)
	at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:228)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275)
	at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:251)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:376)
	at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$4.open(PackageExplorerPart.java:538)
	at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
	at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:866)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:864)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1152)
	at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1256)
	at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275)
	at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:269)
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:309)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:344)
	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:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: java.lang.ClassNotFoundException: com.google.inject.internal.Maps
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 121 more
Comment 1 Sven Efftinge CLA 2011-11-29 05:46:08 EST
Xtext has been migrated to Guice 3 and no longer uses any internals from previous Guice releases.
Comment 2 Karsten Thoms CLA 2017-09-19 18:04:45 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 3 Karsten Thoms CLA 2017-09-19 18:14:45 EDT
Closing all bugs that were set to RESOLVED before Neon.0