Enigma icon indicating copy to clipboard operation
Enigma copied to clipboard

NullPointerException in SourceIndexMethodVisitor

Open Runemoro opened this issue 5 years ago • 7 comments

java.lang.NullPointerException
	at cuchaz.enigma.analysis.SourceIndexMethodVisitor.visitInvocationExpression(SourceIndexMethodVisitor.java:43)
	at cuchaz.enigma.analysis.SourceIndexMethodVisitor.visitInvocationExpression(SourceIndexMethodVisitor.java:28)
	at com.strobel.decompiler.languages.java.ast.InvocationExpression.acceptVisitor(InvocationExpression.java:78)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitThrowStatement(SourceIndexVisitor.java:193)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitThrowStatement(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.ThrowStatement.acceptVisitor(ThrowStatement.java:48)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitBlockStatement(SourceIndexVisitor.java:128)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitBlockStatement(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.BlockStatement.acceptVisitor(BlockStatement.java:72)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitTryCatchStatement(SourceIndexVisitor.java:333)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitTryCatchStatement(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.TryCatchStatement.acceptVisitor(TryCatchStatement.java:73)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitBlockStatement(SourceIndexVisitor.java:128)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitBlockStatement(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.BlockStatement.acceptVisitor(BlockStatement.java:72)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitMethodDeclaration(SourceIndexVisitor.java:38)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitMethodDeclaration(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.MethodDeclaration.acceptVisitor(MethodDeclaration.java:85)
	at cuchaz.enigma.analysis.SourceIndexClassVisitor.visitMethodDeclaration(SourceIndexClassVisitor.java:67)
	at cuchaz.enigma.analysis.SourceIndexClassVisitor.visitMethodDeclaration(SourceIndexClassVisitor.java:25)
	at com.strobel.decompiler.languages.java.ast.MethodDeclaration.acceptVisitor(MethodDeclaration.java:85)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexClassVisitor.visitTypeDeclaration(SourceIndexClassVisitor.java:43)
	at cuchaz.enigma.analysis.SourceIndexClassVisitor.visitTypeDeclaration(SourceIndexClassVisitor.java:25)
	at com.strobel.decompiler.languages.java.ast.TypeDeclaration.acceptVisitor(TypeDeclaration.java:90)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitTypeDeclaration(SourceIndexVisitor.java:26)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitTypeDeclaration(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.TypeDeclaration.acceptVisitor(TypeDeclaration.java:90)
	at cuchaz.enigma.analysis.SourceIndexVisitor.recurse(SourceIndexVisitor.java:31)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitCompilationUnit(SourceIndexVisitor.java:243)
	at cuchaz.enigma.analysis.SourceIndexVisitor.visitCompilationUnit(SourceIndexVisitor.java:19)
	at com.strobel.decompiler.languages.java.ast.CompilationUnit.acceptVisitor(CompilationUnit.java:81)
	at cuchaz.enigma.analysis.SourceIndex.buildIndex(SourceIndex.java:58)
	at cuchaz.enigma.gui.GuiController.decompileSource(GuiController.java:358)
	at cuchaz.enigma.gui.GuiController.lambda$loadClass$7(GuiController.java:333)
	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:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Runemoro avatar Apr 26 '19 08:04 Runemoro

Do you remember in what file this occurred?

Gegy avatar May 06 '19 16:05 Gegy

No, I don't. This wasn't a Minecraft class though.

Runemoro avatar May 06 '19 16:05 Runemoro

This seems to be related to the Procyon update. It seems to call visitInvocationExpression with comparison expressions like fcmpl(Math.abs(arg2.c), 22.5f). Enigma currently expects a MemberReference attached. Not sure if Enigma's assumption there is wrong or if it's an issue with Procyon.

Gegy avatar May 12 '19 09:05 Gegy

This was happening before the procyon update.

Runemoro avatar May 12 '19 13:05 Runemoro

Interesting. Maybe a different issue before -- but the Procyon update has definitely caused this NPE to come up more than before.

Gegy avatar May 12 '19 14:05 Gegy

Is this still relevant? I've used Enigma a fair bit over the past year or so, and I can't recall seeing this particular error at least once

NebelNidas avatar Sep 21 '22 21:09 NebelNidas

Most likely is still an issue as itsprocyon specific. I expect (and hope) you have been using CFR though.

modmuss50 avatar Sep 21 '22 21:09 modmuss50