vtst / ow

Various Eclipse plugins for web development
http://www.normalesup.org/~simonet/soft/
74 stars 29 forks source link

LESS: NPE in xtext #223

Open birdspider opened 10 years ago

birdspider commented 10 years ago

NPE on a less file (which probably has errors)

not sure if it concerns xtext upstream or this codebase, happens on every EditorChange/Input in a specific less file.

java.version=1.7.0_45
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_AT
Framework arguments:  -product org.eclipse.epp.package.standard.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.standard.product

Error
Thu Jun 26 14:42:32 CEST 2014
An internal error occurred during: "Xtext validation".

org.eclipse.emf.common.util.WrappedException: java.lang.NullPointerException
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:212)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.doResolveLazyCrossReference(LazyLinkingResource.java:172)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReference(LazyLinkingResource.java:131)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReferences(LazyLinkingResource.java:117)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:513)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.resolveProxies(ResourceValidatorImpl.java:155)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:68)
    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:62)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.readOnly(XtextDocument.java:254)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:87)
    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:53)
Caused by: java.lang.NullPointerException ```
mindrones commented 10 years ago

Confirming, this is super annoying, makes it practically unusable :/

Here's my error log:

eclipse.buildId=4.4.0.I20140606-1215
java.version=1.7.0_60
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.cpp.product -keyring /Users/me/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -clean -product org.eclipse.epp.package.cpp.product -keyring /Users/me/.eclipse_keyring -showlocation

org.eclipse.core.jobs
Error
Wed Jul 16 11:19:40 CEST 2014
An internal error occurred during: "Xtext validation".

org.eclipse.emf.common.util.WrappedException: java.lang.NullPointerException
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:212)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.doResolveLazyCrossReference(LazyLinkingResource.java:172)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReference(LazyLinkingResource.java:131)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReferences(LazyLinkingResource.java:117)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:513)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.resolveProxies(ResourceValidatorImpl.java:155)
    at org.eclipse.xtext.validation.ResourceValidatorImpl.validate(ResourceValidatorImpl.java:68)
    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:62)
    at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.readOnly(XtextDocument.java:246)
    at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:84)
    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:54)
Caused by: java.lang.NullPointerException
    at org.eclipse.xtext.EcoreUtil2.getResolvedImportUri(EcoreUtil2.java:469)
    at org.eclipse.xtext.EcoreUtil2.getResource(EcoreUtil2.java:477)
    at org.eclipse.xtext.scoping.impl.LoadOnDemandResourceDescriptions.getResourceDescription(LoadOnDemandResourceDescriptions.java:66)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver.loadResourceDescription(LessImportStatementResolver.java:80)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver.getResourceDescription(LessImportStatementResolver.java:90)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver.access$5(LessImportStatementResolver.java:89)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver$ResolvedImportStatement.setImportedStyleSheet(LessImportStatementResolver.java:184)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver$ResolvedImportStatement.<init>(LessImportStatementResolver.java:176)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver$1.get(LessImportStatementResolver.java:109)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver$1.get(LessImportStatementResolver.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:70)
    at net.vtst.ow.eclipse.less.scoping.LessImportStatementResolver.resolve(LessImportStatementResolver.java:107)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.fillScopeForStatements(LessMixinScopeProvider.java:132)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.fillScopeForStatements(LessMixinScopeProvider.java:135)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.fillScopeForStatements(LessMixinScopeProvider.java:135)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.fillScope(LessMixinScopeProvider.java:110)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.access$2(LessMixinScopeProvider.java:106)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:81)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:78)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeContainer(LessMixinScopeProvider.java:99)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.access$1(LessMixinScopeProvider.java:90)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:80)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:78)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeContainer(LessMixinScopeProvider.java:99)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.access$1(LessMixinScopeProvider.java:90)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:80)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:78)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeContainer(LessMixinScopeProvider.java:99)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.access$1(LessMixinScopeProvider.java:90)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:80)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$2.get(LessMixinScopeProvider.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:78)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScopeRec(LessMixinScopeProvider.java:86)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.access$0(LessMixinScopeProvider.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$1.get(LessMixinScopeProvider.java:58)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider$1.get(LessMixinScopeProvider.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.scoping.LessMixinScopeProvider.getScope(LessMixinScopeProvider.java:56)
    at net.vtst.ow.eclipse.less.linking.LessMixinLinkingService$2.get(LessMixinLinkingService.java:288)
    at net.vtst.ow.eclipse.less.linking.LessMixinLinkingService$2.get(LessMixinLinkingService.java:1)
    at org.eclipse.xtext.util.OnChangeEvictingCache.get(OnChangeEvictingCache.java:75)
    at net.vtst.ow.eclipse.less.linking.LessMixinLinkingService.getLinkedMixin(LessMixinLinkingService.java:286)
    at net.vtst.ow.eclipse.less.linking.LessMixinLinkingService.getLinkedObjects(LessMixinLinkingService.java:299)
    at net.vtst.ow.eclipse.less.linking.LessLinkingService.getLinkedObjects(LessLinkingService.java:23)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:228)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:205)
    ... 14 more
mindrones commented 10 years ago

I have solved for one particular file:

At the beginning of a bugged file I had:

@import "foo.less";
//@import "bar.less";
@import "baz.less"; 

The solution seemed to be:

1) moving the comments so they're not between other imports, like this:

@import "foo.less";
@import "baz.less";
//@import "bar.less"; 

2) closing and reopening the file.

In another file, which has no comments between imports, I keep having the bug. Cleaning up the project and restarting won't help either.

I'll keep up investigating.

frensjan commented 10 years ago

I have experienced something similar with a file with the following import:

@import url("http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,300,400,700");

If the import is removed, the errors don't occur. The errors I get are: An internal error occurred during: "Xtext validation". and An internal error occurred during: "XtextReconcilerJob".

clinejj commented 10 years ago

I'm experiencing this issue with an import link to a related file in our project. Any chance this is related to https://github.com/vtst/ow/issues/214?

clinejj commented 10 years ago

After testing, this issue appears to have been introduced with release 20. I cannot recreate this issue in release 19.

bali182 commented 9 years ago

Hi everybody, I know this is a bug report for the web editors, but do you know anything about this from the Xtext side? Is this some kind of known bug? I'm developing a dsl which has a rule, which (similar to the @import your problem) starts with an @, and causes the same exception, but unlike in your case, there is no pointer to my code in the stacktrace, and I have been debugging it for hours without any results.

Did anyone confirm, that this was an error from the devs of the web plugins, or is it something on the xtext side? Any help would be appreciated!