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

Bug 359563

Summary: [Xtend2] NullPointerException when XtendClass extends some other Class and nothing is defined after implements
Product: [Modeling] TMF Reporter: Holger Schill <Holger.Schill>
Component: XtextAssignee: Holger Schill <Holger.Schill>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: sebastian.zarnekow
Version: 2.1.0Flags: sebastian.zarnekow: indigo+
Target Milestone: SR2   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
suggested fix none

Description Holger Schill CLA 2011-09-30 09:38:17 EDT
Having this XtendClass:

class Foo extends Bar implements {

}

You will see the following NullPointerException when you try to typ after the keyword implements happening in the Scoeprovider.

Without extending some Class the Nullpointers are gone.

java.lang.NullPointerException
	at java.lang.String.compareTo(String.java:1167)
	at org.eclipse.xtext.xbase.scoping.featurecalls.JvmFeatureScopeProvider$2.compare(JvmFeatureScopeProvider.java:176)
	at org.eclipse.xtext.xbase.scoping.featurecalls.JvmFeatureScopeProvider$2.compare(JvmFeatureScopeProvider.java:1)
	at java.util.Arrays.mergeSort(Arrays.java:1270)
	at java.util.Arrays.sort(Arrays.java:1210)
	at java.util.Collections.sort(Collections.java:159)
	at org.eclipse.xtext.xbase.scoping.featurecalls.JvmFeatureScopeProvider.linearizeTypeHierarchy(JvmFeatureScopeProvider.java:161)
	at org.eclipse.xtext.xbase.scoping.featurecalls.JvmFeatureScopeProvider.createFeatureScopeForTypeRef(JvmFeatureScopeProvider.java:88)
	at org.eclipse.xtext.xbase.scoping.XbaseScopeProvider.createFeatureScopeForTypeRef(XbaseScopeProvider.java:633)
	at org.eclipse.xtext.xbase.scoping.XbaseScopeProvider.createImplicitFeatureCallScope(XbaseScopeProvider.java:421)
	at org.eclipse.xtext.xbase.scoping.XbaseScopeProvider.createSimpleFeatureCallScope(XbaseScopeProvider.java:357)
	at org.eclipse.xtext.xbase.scoping.XbaseScopeProvider.createFeatureCallScope(XbaseScopeProvider.java:327)
	at org.eclipse.xtext.xbase.scoping.XbaseScopeProvider.getScope(XbaseScopeProvider.java:155)
	at org.eclipse.xtext.xbase.annotations.scoping.XbaseWithAnnotationsScopeProvider.getScope(XbaseWithAnnotationsScopeProvider.java:50)
	at org.eclipse.xtext.xbase.linking.XbaseLinkingScopeProvider.getScope(XbaseLinkingScopeProvider.java:42)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getScope(DefaultLinkingService.java:59)
	at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:119)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:173)
	at org.eclipse.xtext.xbase.resource.XbaseResource.access$0(XbaseResource.java:1)
	at org.eclipse.xtext.xbase.resource.XbaseResource$1.exec(XbaseResource.java:32)
	at org.eclipse.xtext.xbase.resource.XbaseResource$1.exec(XbaseResource.java:1)
	at org.eclipse.xtext.util.OnChangeEvictingCache.execWithoutCacheClear(OnChangeEvictingCache.java:67)
	at org.eclipse.xtext.xbase.resource.XbaseResource.getEObject(XbaseResource.java:30)
	at org.eclipse.xtext.xtend2.resource.Xtend2Resource.getEObject(Xtend2Resource.java:88)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReference(LazyLinkingResource.java:141)
	at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReferences(LazyLinkingResource.java:102)
	at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:485)
	at org.eclipse.xtext.validation.ResourceValidatorImpl.resolveProxies(ResourceValidatorImpl.java:127)
	at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:62)
	at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:79)
	at org.eclipse.xtext.ui.editor.validation.ValidationJob$1.exec(ValidationJob.java:1)
	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.validation.ValidationJob.createIssues(ValidationJob.java:75)
	at org.eclipse.xtext.ui.editor.validation.ValidationJob.run(ValidationJob.java:64)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Holger Schill CLA 2011-10-12 04:46:57 EDT
Sebastian. Should I have a look at this issue?
Comment 2 Sebastian Zarnekow CLA 2011-10-12 04:56:26 EDT
(In reply to comment #1)
> Sebastian. Should I have a look at this issue?

Sure, a patch is most welcome if you find the time :-)
Comment 3 Holger Schill CLA 2011-10-12 09:28:11 EDT
Created attachment 205031 [details]
suggested fix

Suggested fix for the problem. Please review.
Comment 4 Holger Schill CLA 2011-10-12 09:58:11 EDT
After a discussion with Sebastian I pushed a slightly differnt version of the patch with same result.

Pushed to master.
Comment 5 Karsten Thoms CLA 2017-09-19 16:53:12 EDT
Closing all bugs that were set to RESOLVED before Neon.0
Comment 6 Karsten Thoms CLA 2017-09-19 17:04:07 EDT
Closing all bugs that were set to RESOLVED before Neon.0