deathmarine / Luyten

An Open Source Java Decompiler Gui for Procyon
Other
4.96k stars 996 forks source link

AST Error: java.lang.IllegalArgumentException: Node belongs to another tree. #210

Open soatok opened 5 years ago

soatok commented 5 years ago
java.lang.IllegalArgumentException: Node belongs to another tree.
    at com.strobel.decompiler.languages.java.ast.AstNode.addChild(AstNode.java:428)
    at com.strobel.decompiler.languages.java.ast.AstNodeCollection.add(AstNodeCollection.java:164)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:670)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:552)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:519)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:161)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:150)
    at com.strobel.decompiler.languages.java.ast.transforms.EliminateSyntheticAccessorsTransform.visitInvocationExpression(EliminateSyntheticAccessorsTransform.java:100)
    at com.strobel.decompiler.languages.java.ast.transforms.EliminateSyntheticAccessorsTransform.visitInvocationExpression(EliminateSyntheticAccessorsTransform.java:37)
    at com.strobel.decompiler.languages.java.ast.InvocationExpression.acceptVisitor(InvocationExpression.java:78)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitBinaryOperatorExpression(DepthFirstAstVisitor.java:284)
    at com.strobel.decompiler.languages.java.ast.BinaryOperatorExpression.acceptVisitor(BinaryOperatorExpression.java:88)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitIfElseStatement(DepthFirstAstVisitor.java:134)
    at com.strobel.decompiler.languages.java.ast.IfElseStatement.acceptVisitor(IfElseStatement.java:83)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitBlockStatement(DepthFirstAstVisitor.java:104)
    at com.strobel.decompiler.languages.java.ast.BlockStatement.acceptVisitor(BlockStatement.java:72)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitMethodDeclaration(DepthFirstAstVisitor.java:214)
    at com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor.visitMethodDeclaration(ContextTrackingVisitor.java:64)
    at com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor.visitMethodDeclaration(ContextTrackingVisitor.java:28)
    at com.strobel.decompiler.languages.java.ast.MethodDeclaration.acceptVisitor(MethodDeclaration.java:85)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitTypeDeclaration(DepthFirstAstVisitor.java:244)
    at com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor.visitTypeDeclaration(ContextTrackingVisitor.java:52)
    at com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor.visitTypeDeclaration(ContextTrackingVisitor.java:28)
    at com.strobel.decompiler.languages.java.ast.TypeDeclaration.acceptVisitor(TypeDeclaration.java:90)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitChildren(DepthFirstAstVisitor.java:41)
    at com.strobel.decompiler.languages.java.ast.DepthFirstAstVisitor.visitCompilationUnit(DepthFirstAstVisitor.java:249)
    at com.strobel.decompiler.languages.java.ast.CompilationUnit.acceptVisitor(CompilationUnit.java:81)
    at com.strobel.decompiler.languages.java.ast.ContextTrackingVisitor.run(ContextTrackingVisitor.java:84)
    at com.strobel.decompiler.languages.java.ast.transforms.EliminateSyntheticAccessorsTransform.run(EliminateSyntheticAccessorsTransform.java:57)
    at com.strobel.decompiler.languages.java.ast.transforms.TransformationPipeline.runTransformationsUntil(TransformationPipeline.java:93)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.runTransformations(AstBuilder.java:119)
    at com.strobel.decompiler.languages.java.JavaLanguage.runTransforms(JavaLanguage.java:97)
    at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:72)
    at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
    at us.deathmarine.luyten.FindAllBox$FindButton$1.run(FindAllBox.java:234)
soatok commented 5 years ago

This was caused when trying to Find All on a decompiled Android app to search for strings of interest.

Another file caused this:

java.lang.NullPointerException
    at com.strobel.decompiler.languages.java.ast.AstBuilder.convertType(AstBuilder.java:344)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.convertType(AstBuilder.java:173)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.convertType(AstBuilder.java:169)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createField(AstBuilder.java:622)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:544)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:519)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:161)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:150)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:670)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:552)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:519)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:161)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:150)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:670)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:552)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:519)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:161)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:150)
    at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:125)
    at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71)
    at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
    at us.deathmarine.luyten.FindAllBox$FindButton$1.run(FindAllBox.java:234)