melix / asm-bytecode-intellij

An ASM (http://asm.ow2.org/) plugin for IntelliJ IDEA
69 stars 44 forks source link

NPE on local class #21

Open cretz opened 7 years ago

cretz commented 7 years ago

Showing bytecode inside the local class of:

public class LocalClasses {

    public static void main(String[] args) {
        String test = "Test";
        class TestPrint {
            void print() {
                System.out.println(test);
            }
        }
        new TestPrint().print();
    }
}

Causes an error in the IDE like so:

null
java.lang.NullPointerException
    at java.lang.StringBuilder.<init>(StringBuilder.java:112)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction$3.getClassFile(ShowBytecodeOutlineAction.java:178)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction$3.compute(ShowBytecodeOutlineAction.java:163)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction$3.compute(ShowBytecodeOutlineAction.java:155)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:895)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction.findClassFile(ShowBytecodeOutlineAction.java:155)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction.access$000(ShowBytecodeOutlineAction.java:63)
    at org.objectweb.asm.idea.ShowBytecodeOutlineAction$2$1.run(ShowBytecodeOutlineAction.java:117)
    at com.intellij.openapi.application.TransactionGuardImpl$6.run(TransactionGuardImpl.java:318)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:417)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:401)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:843)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:679)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)