Closed rpau closed 8 years ago
It is impossible to discover the error without knowing the specific method signature
Will try to repeat. Guess it was one without file name.
Oh, contains file name i see. Any chance to provide location info? Big file, partially generated.
164dd983b95fa58b17eb0caefa145361f02cc2c0. I see.
It's tricky and I couldn't extract a test case.
Using https://github.com/cal101/javalang-compiler/commit/ae21e10aa51b72cc6c4361b069aa68fcb3a0e8b8
the symbol data is wrong on first call and correct later. Order issue?
transformParams: symbol data for ObjectRelationACLogic.UOAC ac is ObjectRelationACLogic.UOAC, xxx.ObjectRelationACLogic
Caused by: org.walkmod.javalang.exceptions.NoSuchExpressionTypeException: Error locating method user with type args [xxx.ObjectRelationACLogic] and type params {} for parameters [ObjectRelationACLogic.UOAC ac] in current class
transformParams: symbol data for ObjectRelationACLogic.UOAC ac is ObjectRelationACLogic.UOAC, xxx.ObjectRelationACLogic$UOAC
transformParams: symbol data for ObjectRelationACLogic.UOAC ac is ObjectRelationACLogic.UOAC, xxx.ObjecttRelationACLogic$UOAC
UOAC is an inner enum in the interface ObjecttRelationACLogic
Sorry Cal, I am a little lost :-S
From your logs: The first line comes from resolving the arguments symbol data, and then when it tries to resolve the method, the system can't found it. The other lines I guess that are other method calls.
So, probably it is something related with resolution of some arguments that belong to a different Parameterizable Class.
You can debug the type checking on parameters in CompatibleArgsPredicate.java The behavior is as follows: first candidate methods are sorted from the most specific arguments to the most generic ones, and afterwards a set of filters are applied (name, modifiers..). One of these filters is CompatibleArgsPredicate.
This was a tough one. From Predicate over Symbol resolver etc. to the SymbolTable. The symbol table content is wrong for the inner enum:
When compiling
==> src/main/java/de/walkmod/staticimport/Importer.java <==
package de.walkmod.staticimport;
import static de.walkmod.staticimport.pkg.SomeInterface.Inner1;
import de.walkmod.staticimport.pkg.SomeInterface;
public class Importer {
public static String foo(SomeInterface.Inner1 v) {
return v.toString();
}
public static String bar(Inner1 v) {
return v.toString();
}
}
==> src/main/java/de/walkmod/staticimport/pkg/SomeInterface.java <==
package de.walkmod.staticimport.pkg;
public interface SomeInterface {
static enum Inner1 {
A,B;
}
}
I get
ERROR [main] - Error processing the analysis of [.../src/main/java/de/walkmod/staticimport/Importer.java]
Error processing the analysis of [.../src/main/java/de/walkmod/staticimport/Importer.java] - [349:-1]
at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:349)
at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:283)
at org.walkmod.javalang.compiler.types.ScopeLoader.process(ScopeLoader.java:99)
at org.walkmod.javalang.compiler.types.ScopeLoader.visit(ScopeLoader.java:116)
at org.walkmod.javalang.compiler.types.ScopeLoader.visit(ScopeLoader.java:43)
at org.walkmod.javalang.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:130)
at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:170)
at org.walkmod.javalang.walkers.DefaultJavaWalker.visit(DefaultJavaWalker.java:198)
at org.walkmod.javalang.walkers.DefaultJavaWalker.accept(DefaultJavaWalker.java:86)
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:261)
at org.walkmod.walkers.AbstractWalker.execute(AbstractWalker.java:276)
at org.walkmod.javalang.walkers.DefaultJavaWalker.execute(DefaultJavaWalker.java:160)
at org.walkmod.impl.DefaultChainWalkerInvocation.invoke(DefaultChainWalkerInvocation.java:41)
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:911)
at org.walkmod.WalkModFacade.apply(WalkModFacade.java:376)
at org.walkmod.commands.ApplyCommand.execute(ApplyCommand.java:40)
at org.walkmod.WalkModDispatcher.execute(WalkModDispatcher.java:171)
at org.walkmod.WalkModDispatcher.main(WalkModDispatcher.java:196)
Caused by: org.walkmod.javalang.exceptions.SymbolTableException: java.lang.RuntimeException: Error loading methods in a given scope
... 24 more
Caused by: java.lang.RuntimeException: Error loading methods in a given scope
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.loadMethods(LoadMethodDeclarationsAction.java:254)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.visit(LoadMethodDeclarationsAction.java:227)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.visit(LoadMethodDeclarationsAction.java:192)
at org.walkmod.javalang.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:136)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.doPush(LoadMethodDeclarationsAction.java:187)
at org.walkmod.javalang.compiler.symbols.SymbolAction.execute(SymbolAction.java:25)
at org.walkmod.javalang.compiler.symbols.Symbol.invokeActions(Symbol.java:144)
at org.walkmod.javalang.compiler.symbols.SymbolTable.invokeActions(SymbolTable.java:201)
at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:347)
... 23 more
Caused by: org.walkmod.javalang.exceptions.NoSuchExpressionTypeException: Error resolving the signature of the method foo at [8, 5]
at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:1156)
at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:115)
at org.walkmod.javalang.ast.body.MethodDeclaration.accept(MethodDeclaration.java:207)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.pushMethod(LoadMethodDeclarationsAction.java:126)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.access$100(LoadMethodDeclarationsAction.java:59)
at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.loadMethods(LoadMethodDeclarationsAction.java:247)
... 31 more
Caused by: org.walkmod.javalang.exceptions.NoSuchExpressionTypeException: Error locating method foo with type args [de.walkmod.staticimport.pkg.SomeInterface] and type params {} for parameters [SomeInterface.Inner1 v] in current class
at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:1146)
... 36 more
ERROR [main] - TRANSFORMATION CHAIN (default) FAILS An exeception has been produced during the null transformation - org.walkmod.util.location.LocationImpl@57c6574d at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) 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:250) at org.walkmod.walkers.AbstractWalker.execute(AbstractWalker.java:265) at org.walkmod.javalang.walkers.DefaultJavaWalker.execute(DefaultJavaWalker.java:158) at org.walkmod.impl.DefaultChainWalkerInvocation.invoke(DefaultChainWalkerInvocation.java:41) 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:911) at org.walkmod.WalkModFacade.apply(WalkModFacade.java:376) at org.walkmod.commands.ApplyCommand.execute(ApplyCommand.java:40) at org.walkmod.WalkModDispatcher.execute(WalkModDispatcher.java:171) at org.walkmod.WalkModDispatcher.main(WalkModDispatcher.java:196) Caused by: java.lang.reflect.InvocationTargetException ... 14 more Caused by: Error processing the analysis of [.../OSE.java] - org.walkmod.util.location.LocationImpl@45f094b3 at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:344) at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:283) at org.walkmod.javalang.compiler.types.ScopeLoader.process(ScopeLoader.java:99) at org.walkmod.javalang.compiler.types.ScopeLoader.visit(ScopeLoader.java:116) at org.walkmod.javalang.compiler.types.ScopeLoader.visit(ScopeLoader.java:43) at org.walkmod.javalang.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:128) at org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter.visit(SymbolVisitorAdapter.java:169) at org.walkmod.javalang.walkers.DefaultJavaWalker.visit(DefaultJavaWalker.java:196) at org.walkmod.javalang.walkers.DefaultJavaWalker.accept(DefaultJavaWalker.java:84) ... 14 more Caused by: org.walkmod.javalang.exceptions.SymbolTableException: java.lang.RuntimeException: Error loading methods in a given scope ... 23 more Caused by: java.lang.RuntimeException: Error loading methods in a given scope at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.loadMethods(LoadMethodDeclarationsAction.java:254) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.visit(LoadMethodDeclarationsAction.java:227) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.visit(LoadMethodDeclarationsAction.java:192) at org.walkmod.javalang.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:134) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.doPush(LoadMethodDeclarationsAction.java:187) at org.walkmod.javalang.compiler.symbols.SymbolAction.execute(SymbolAction.java:25) at org.walkmod.javalang.compiler.symbols.Symbol.invokeActions(Symbol.java:144) at org.walkmod.javalang.compiler.symbols.SymbolTable.invokeActions(SymbolTable.java:201) at org.walkmod.javalang.compiler.symbols.SymbolTable.pushSymbol(SymbolTable.java:342) ... 22 more Caused by: org.walkmod.javalang.exceptions.NoSuchExpressionTypeException: java.lang.NullPointerException at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:1131) at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:114) at org.walkmod.javalang.ast.body.MethodDeclaration.accept(MethodDeclaration.java:206) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.pushMethod(LoadMethodDeclarationsAction.java:126) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction.access$100(LoadMethodDeclarationsAction.java:59) at org.walkmod.javalang.compiler.actions.LoadMethodDeclarationsAction$MethodsPopulator.loadMethods(LoadMethodDeclarationsAction.java:247) ... 30 more Caused by: java.lang.NullPointerException at org.walkmod.javalang.compiler.types.TypeVisitorAdapter.visit(TypeVisitorAdapter.java:1128) ... 35 more