Giter Club home page Giter Club logo

Comments (4)

chrismwendt avatar chrismwendt commented on August 27, 2024

I ran into this once before. All I have right now is a workaround: ignore test files.

Edit Spoon explicitly supports ignoring duplicate definitions INRIA/spoon#2772 Fixed in 45a3d27

from scip-java.

chrismwendt avatar chrismwendt commented on August 27, 2024

The indexer gets further, but there's a null pointer exception:

Exception in thread "main" java.lang.NullPointerException
	at DocumentIndexer.identifierRange(DocumentIndexer.java:312)
	at DocumentIndexer.access$1100(DocumentIndexer.java:16)
	at DocumentIndexer$ReferencesVisitor.visitCtFieldRead(DocumentIndexer.java:202)
	at spoon.support.reflect.code.CtFieldReadImpl.accept(CtFieldReadImpl.java:16)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtNewArray(CtScanner.java:571)
	at spoon.support.reflect.code.CtNewArrayImpl.accept(CtNewArrayImpl.java:32)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:149)
	at spoon.reflect.visitor.CtScanner.visitCtAnnotation(CtScanner.java:183)
	at spoon.support.reflect.declaration.CtAnnotationImpl.accept(CtAnnotationImpl.java:85)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtMethod(CtScanner.java:546)
	at spoon.support.reflect.declaration.CtMethodImpl.accept(CtMethodImpl.java:56)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtClass(CtScanner.java:330)
	at spoon.support.reflect.declaration.CtClassImpl.accept(CtClassImpl.java:56)
	at DocumentIndexer.visitReferences(DocumentIndexer.java:55)
	at ProjectIndexer.index(ProjectIndexer.java:70)
	at Main.main(Main.java:15)

Fixed in 7acf525

from scip-java.

ryan-blunden avatar ryan-blunden commented on August 27, 2024

I get a NullPointerException also, but of a different type:

Linking use to definition: /Users/rb/External/karate/karate-junit5/src/main/java/com/intuit/karate/junit5/FeatureNode.java:81:29-81:32 -> /Users/rb/External/karate/karate-junit5/src/main/java/com/intuit/karate/junit5/FeatureNode.java:78:31-78:53
Exception in thread "main" java.lang.NullPointerException
	at DocumentIndexer$ReferencesVisitor.visitCtVariableRead(DocumentIndexer.java:174)
	at spoon.support.reflect.code.CtVariableReadImpl.accept(CtVariableReadImpl.java:16)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.visitCtInvocation(CtScanner.java:497)
	at DocumentIndexer$ReferencesVisitor.visitCtInvocation(DocumentIndexer.java:181)
	at spoon.support.reflect.code.CtInvocationImpl.accept(CtInvocationImpl.java:44)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.visitCtIf(CtScanner.java:476)
	at spoon.support.reflect.code.CtIfImpl.accept(CtIfImpl.java:34)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtBlock(CtScanner.java:294)
	at spoon.support.reflect.code.CtBlockImpl.accept(CtBlockImpl.java:55)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.visitCtLambda(CtScanner.java:608)
	at spoon.support.reflect.code.CtLambdaImpl.accept(CtLambdaImpl.java:54)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtInvocation(CtScanner.java:499)
	at DocumentIndexer$ReferencesVisitor.visitCtInvocation(DocumentIndexer.java:181)
	at spoon.support.reflect.code.CtInvocationImpl.accept(CtInvocationImpl.java:44)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.visitCtReturn(CtScanner.java:670)
	at spoon.support.reflect.code.CtReturnImpl.accept(CtReturnImpl.java:25)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtBlock(CtScanner.java:294)
	at spoon.support.reflect.code.CtBlockImpl.accept(CtBlockImpl.java:55)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.visitCtMethod(CtScanner.java:551)
	at spoon.support.reflect.declaration.CtMethodImpl.accept(CtMethodImpl.java:56)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:173)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:165)
	at spoon.reflect.visitor.CtScanner.scan(CtScanner.java:139)
	at spoon.reflect.visitor.CtScanner.visitCtClass(CtScanner.java:330)
	at spoon.support.reflect.declaration.CtClassImpl.accept(CtClassImpl.java:56)
	at DocumentIndexer.visitReferences(DocumentIndexer.java:55)
	at ProjectIndexer.index(ProjectIndexer.java:72)
	at Main.main(Main.java:15)

from scip-java.

chrismwendt avatar chrismwendt commented on August 27, 2024

This combination caused the NullPointerException:

  • This repository multiple modules
  • Some symbols in one module are referenced in others
  • Spoon doesn't appear to support cross-module definitions

Specifically, this usage of result:

https://github.com/intuit/karate/blob/ecd63384bba0475c158d14c529d1c93b8babc771/karate-junit5/src/main/java/com/intuit/karate/junit5/FeatureNode.java#L82

image

refers to:

https://github.com/intuit/karate/blob/ecd63384bba0475c158d14c529d1c93b8babc771/karate-core/src/main/java/com/intuit/karate/core/ScenarioExecutionUnit.java#L42

image

But el.getVariable().getDeclaration() is null:

https://github.com/sourcegraph/lsif-java/blob/68d3bfbbd3afc791deddad7004a55191914c7949/src/main/java/DocumentIndexer.java#L174

from scip-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.