TypeFox / yang-lsp

A Language Server for YANG
http://www.yang-central.org
Apache License 2.0
51 stars 13 forks source link

NPE in scoping when opening up a file while the workspace is being built right after LS startup #58

Closed kittaakos closed 7 years ago

kittaakos commented 7 years ago

YANG:

module example-3-b {

  yang-version "1.1";

  namespace "http://example.com/example-3/b";

  prefix "ex3b";

  import example-3-b {
    prefix "oin";
    revision-date 2010-09-24;
  }

  import example-3-a {
    prefix "ex3a";
  }

  revision 2016-08-22;

  identity idY;

  identity idZ {
    base ex3a:idX;
    base idY;
  }

  augment "/ex3a:top" {
    if-feature "ex3a:fea1 or ex3a:fea2";
    uses ex3a:gbar;
    leaf baz {
      type oin:port-number;
    }
  }
}

Exception:

70024 [pool-1-thread-1] ERROR xt.linking.lazy.LazyLinkingResource  - resolution of uriFragment '|0' failed.
java.lang.NullPointerException
    at io.typefox.yang.scoping.ScopeContext$CompositeScope.lambda$3(ScopeContext.java:109)
    at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
    at com.google.common.collect.Iterators$8.transform(Iterators.java:817)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:674)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at org.eclipse.xtext.xbase.lib.IteratorExtensions.head(IteratorExtensions.java:145)
    at org.eclipse.xtext.xbase.lib.IterableExtensions.head(IterableExtensions.java:119)
    at io.typefox.yang.scoping.ScopeContext$CompositeScope.getSingleElement(ScopeContext.java:111)
    at io.typefox.yang.scoping.ScopeContext$MapScope.tryAddLocal(ScopeContext.java:65)
    at io.typefox.yang.scoping.ScopeContextProvider.lambda$17(ScopeContextProvider.java:605)
    at io.typefox.yang.scoping.ScopeContext.onComputeNodeScope(ScopeContext.java:506)
    at io.typefox.yang.scoping.GroupingInliningScopeContext.onComputeNodeScope(GroupingInliningScopeContext.java:121)
    at io.typefox.yang.scoping.ScopeContextProvider.addToNodeScope(ScopeContextProvider.java:615)
    at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:438)
    at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:906)
    at io.typefox.yang.scoping.ScopeContextProvider.lambda$5(ScopeContextProvider.java:388)
    at io.typefox.yang.scoping.ScopeContext.lambda$11(ScopeContext.java:412)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at io.typefox.yang.scoping.ScopeContext.resolveDefinitionPhase(ScopeContext.java:414)
    at io.typefox.yang.resource.YangResource.getEObject(YangResource.java:42)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:222)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.doResolveLazyCrossReference(LazyLinkingResource.java:189)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReference(LazyLinkingResource.java:148)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReferences(LazyLinkingResource.java:134)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:498)
    at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.lambda$launch$6(IncrementalBuilder.java:236)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.lambda$executeClustered$1(ClusteringStorageAwareResourceLoader.java:77)
    at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
    at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:640)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
    at java.util.ArrayList.addAll(ArrayList.java:577)
    at com.google.common.collect.Iterables.addAll(Iterables.java:350)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.executeClustered(ClusteringStorageAwareResourceLoader.java:80)
    at org.eclipse.xtext.build.BuildContext.executeClustered(BuildContext.java:55)
    at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.launch(IncrementalBuilder.java:251)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:399)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:384)
    at org.eclipse.xtext.ide.server.ProjectManager.doBuild(ProjectManager.java:115)
    at org.eclipse.xtext.ide.server.ProjectManager.doInitialBuild(ProjectManager.java:107)
    at org.eclipse.xtext.ide.server.BuildManager.doInitialBuild(BuildManager.java:149)
    at org.eclipse.xtext.ide.server.WorkspaceManager.refreshWorkspaceConfig(WorkspaceManager.java:148)
    at org.eclipse.xtext.ide.server.WorkspaceManager.initialize(WorkspaceManager.java:117)
    at org.eclipse.xtext.ide.server.LanguageServerImpl.lambda$initialize$8(LanguageServerImpl.java:253)
    at org.eclipse.xtext.ide.server.concurrent.RequestManager.lock(RequestManager.java:146)
    at org.eclipse.xtext.ide.server.concurrent.RequestManager.lockWrite(RequestManager.java:80)
    at org.eclipse.xtext.ide.server.LanguageServerImpl.initialize(LanguageServerImpl.java:256)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:51)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:105)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:203)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:139)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:149)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:77)
    at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:84)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Aug 02, 2017 1:42:23 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint lambda$static$0
SEVERE: Internal error: java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:53)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.request(GenericEndpoint.java:105)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleRequest(RemoteEndpoint.java:203)
    at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:139)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:149)
    at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:77)
    at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:84)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.lsp4j.jsonrpc.services.GenericEndpoint.lambda$null$0(GenericEndpoint.java:51)
    ... 11 more
Caused by: org.eclipse.emf.common.util.WrappedException: java.lang.NullPointerException
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:230)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.doResolveLazyCrossReference(LazyLinkingResource.java:189)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReference(LazyLinkingResource.java:148)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.resolveLazyCrossReferences(LazyLinkingResource.java:134)
    at org.eclipse.xtext.EcoreUtil2.resolveLazyCrossReferences(EcoreUtil2.java:498)
    at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.lambda$launch$6(IncrementalBuilder.java:236)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.lambda$executeClustered$1(ClusteringStorageAwareResourceLoader.java:77)
    at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
    at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:640)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
    at java.util.ArrayList.addAll(ArrayList.java:577)
    at com.google.common.collect.Iterables.addAll(Iterables.java:350)
    at org.eclipse.xtext.build.ClusteringStorageAwareResourceLoader.executeClustered(ClusteringStorageAwareResourceLoader.java:80)
    at org.eclipse.xtext.build.BuildContext.executeClustered(BuildContext.java:55)
    at org.eclipse.xtext.build.IncrementalBuilder$InternalStatefulIncrementalBuilder.launch(IncrementalBuilder.java:251)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:399)
    at org.eclipse.xtext.build.IncrementalBuilder.build(IncrementalBuilder.java:384)
    at org.eclipse.xtext.ide.server.ProjectManager.doBuild(ProjectManager.java:115)
    at org.eclipse.xtext.ide.server.ProjectManager.doInitialBuild(ProjectManager.java:107)
    at org.eclipse.xtext.ide.server.BuildManager.doInitialBuild(BuildManager.java:149)
    at org.eclipse.xtext.ide.server.WorkspaceManager.refreshWorkspaceConfig(WorkspaceManager.java:148)
    at org.eclipse.xtext.ide.server.WorkspaceManager.initialize(WorkspaceManager.java:117)
    at org.eclipse.xtext.ide.server.LanguageServerImpl.lambda$initialize$8(LanguageServerImpl.java:253)
    at org.eclipse.xtext.ide.server.concurrent.RequestManager.lock(RequestManager.java:146)
    at org.eclipse.xtext.ide.server.concurrent.RequestManager.lockWrite(RequestManager.java:80)
    at org.eclipse.xtext.ide.server.LanguageServerImpl.initialize(LanguageServerImpl.java:256)
    ... 16 more
Caused by: java.lang.NullPointerException
    at io.typefox.yang.scoping.ScopeContext$CompositeScope.lambda$3(ScopeContext.java:109)
    at org.eclipse.xtext.xbase.lib.internal.FunctionDelegate.apply(FunctionDelegate.java:42)
    at com.google.common.collect.Iterators$8.transform(Iterators.java:817)
    at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:674)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at org.eclipse.xtext.xbase.lib.IteratorExtensions.head(IteratorExtensions.java:145)
    at org.eclipse.xtext.xbase.lib.IterableExtensions.head(IterableExtensions.java:119)
    at io.typefox.yang.scoping.ScopeContext$CompositeScope.getSingleElement(ScopeContext.java:111)
    at io.typefox.yang.scoping.ScopeContext$MapScope.tryAddLocal(ScopeContext.java:65)
    at io.typefox.yang.scoping.ScopeContextProvider.lambda$17(ScopeContextProvider.java:605)
    at io.typefox.yang.scoping.ScopeContext.onComputeNodeScope(ScopeContext.java:506)
    at io.typefox.yang.scoping.GroupingInliningScopeContext.onComputeNodeScope(GroupingInliningScopeContext.java:121)
    at io.typefox.yang.scoping.ScopeContextProvider.addToNodeScope(ScopeContextProvider.java:615)
    at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:438)
    at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:906)
    at io.typefox.yang.scoping.ScopeContextProvider.lambda$5(ScopeContextProvider.java:388)
    at io.typefox.yang.scoping.ScopeContext.lambda$11(ScopeContext.java:412)
    at java.util.ArrayList.forEach(ArrayList.java:1249)
    at io.typefox.yang.scoping.ScopeContext.resolveDefinitionPhase(ScopeContext.java:414)
    at io.typefox.yang.resource.YangResource.getEObject(YangResource.java:42)
    at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:222)
    ... 42 more