rpau/javalang-compiler

NPE in TypeVisitorAdapter

Closed this issue · 5 comments

An exeception has been produced during the walkmod:commons:unused-declarations-cleaner transformation - org.walkmod.util.location.LocationImpl@2648aa1b
    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:497)
    at org.walkmod.walkers.AbstractWalker.walk(AbstractWalker.java:260)
    at org.walkmod.walkers.AbstractWalker.execute(AbstractWalker.java:275)
    at org.walkmod.impl.DefaultChainWalkerInvocation.invoke(DefaultChainWalkerInvocation.java:42)
    at org.walkmod.impl.DefaultChainInvocation.invoke(DefaultChainInvocation.java:38)
    at org.walkmod.impl.DefaultChainAdapter.execute(DefaultChainAdapter.java:165)
    at org.walkmod.WalkModFacade.executeAllChains(WalkModFacade.java:478)
    at org.walkmod.WalkModFacade.apply(WalkModFacade.java:237)
    at org.walkmod.WalkModDispatcher.main(WalkModDispatcher.java:181)
Caused by: java.lang.reflect.InvocationTargetException
    ... 12 more
Caused by: org.walkmod.javalang.exceptions.NoSuchExpressionTypeException: java.lang.NullPointerException
    at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:510)
    at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:113)
    at org.walkmod.javalang.ast.expr.MethodCallExpr.accept(MethodCallExpr.java:73)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:776)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:91)
    at org.walkmod.javalang.ast.stmt.IfStmt.accept(IfStmt.java:57)
    at org.walkmod.javalang.visitors.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:203)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:513)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:91)
    at org.walkmod.javalang.ast.stmt.BlockStmt.accept(BlockStmt.java:50)
    at org.walkmod.javalang.visitors.VoidVisitorAdapter.visit(VoidVisitorAdapter.java:564)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:542)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:91)
    at org.walkmod.javalang.ast.body.MethodDeclaration.accept(MethodDeclaration.java:153)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:435)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:91)
    at org.walkmod.javalang.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:90)
    at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:174)
    at org.walkmod.javalang.walkers.DefaultJavaWalker.visit(DefaultJavaWalker.java:118)
    at org.walkmod.javalang.walkers.DefaultJavaWalker.accept(DefaultJavaWalker.java:74)
    ... 12 more
Caused by: java.lang.NullPointerException
    at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:419)
    ... 31 more

I am not sure the line number in the exception matches the code currently in master. If this is the case I guess that scope could be null.

rpau commented

Hi,

Can I see the project and the walkmod.xml file ? Is it an open source project? Because something is wrong calculating the scope of a method call.

Sure: the project is https://github.com/ftomassetti/java-symbol-solver, branch "walkmod".
It is a messy toy project :)

If this project is somehow derived from JavaParser it will probably have all these issues with null being used all over the places.

rpau commented

Ok perfect! I will take a look to solve this problem

Thank you!

rpau commented

Partially Solved :) : javaparser/javasymbolsolver#1