NPE during OST generation

Issue #912 resolved
Scott Dentes created an issue

Worked fine for me until 2.0.1.2

Stack trace from log:

java.lang.NullPointerException at com.illuminatedcloud.symtab.ApexTypeName.getKeyForm(SourceFile:59) at com.illuminatedcloud.symtab.ApexTypeName.hashCode(SourceFile:65) at java.util.HashMap.hash(HashMap.java:338) at java.util.HashMap.put(HashMap.java:611) at com.illuminatedcloud.symtab.OfflineSymbolTable.getAllTypeNames(SourceFile:1162) at com.illuminatedcloud.symtab.OfflineSymbolTable.generateApexSourceFiles(SourceFile:2467) at com.illuminatedcloud.symtab.OfflineSymbolTable.generateOfflineSymbolTable(SourceFile:815) at com.illuminatedcloud.intellij.settings.project.OfflineSymbolTableGenerator$3.run(SourceFile:205) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:713) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:157) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:543) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:488) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:165) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:315) 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:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

Comments (9)

  1. Scott Wells repo owner

    Sorry for the issue, Scott. I did rewrite the portion of OST generation for custom classes to incorporate some considerable performance optimizations. Let me address this NPE immediately with a build posted here to get you unblocked and then I'll issue a new build later today in case others are hitting this. I'll have a build for you to install very shortly.

  2. Scott Wells repo owner

    Okay, this is exactly 2.01.2 with what should be a fix/workaround for the issue you're seeing. Having said that, it will also log information about the true root cause of the issue which isn't necessarily addressed here. Please do the following if you don't mind:

    • Download this build and install it using Settings/Preferences>Plugins>Install plugin from disk.
    • Add the following to Help>Debug Log Settings:
    #com.illuminatedcloud.symtab.OfflineSymbolTable
    
    • Generate your OST.
    • Whether it succeeds or fails, send me your idea.log using Help>Show Log in Explorer/Finder/Files. If it contains sensitive info, feel free to email it to me.

    Hopefully this will get you going again, but if it doesn't it should provide enough info for me to get you another build that does. In the interim you can always roll back to 2.0.1.1 by downloading it from here. Before doing so, though, let's please get some root cause diagnostic info so that I can resolve the core issue.

    Thanks, and sorry again for the inconvenience!

  3. Scott Dentes reporter

    Hotfix seems to have solved the problem for me - sent you an email just now with the requested log.

    Thank you!

  4. Scott Dentes reporter

    I'm getting bouncebacks from my company email server - looks like I won't be able to get you the full log.

  5. Scott Wells repo owner

    Any chance you could look for any relevant stack traces in the log and attach them here? Look for the message "Failed to determine a type name for symbol table" and please attach the full contents (redacting/obfuscating as necessary). No problem if you're unable to do so, though.

  6. Scott Dentes reporter

    sure! Only instance of that was relating to a managed package we use called Geopointe:

    2018-03-07 10:14:48,287 [ 206030] WARN - loud.symtab.OfflineSymbolTable - Failed to determine a type name for symbol table: { "declarationType": "CLASS", "innerClasses": [], "name": "", "namespace": "geopointe", "properties": [], "tableDeclaration": { "visibility": "GLOBAL", "modifiers": [ "global" ], "name": "", "type": "Type" }, "variables": [] }

  7. Scott Wells repo owner

    Perfect! Thanks much. So the issue is the "name": "" portion of that. I'll see if I can backtrack to how that happened initially which might require one more pass on debug logging. In the interim please let me know if you find any gaps in your OST, in particular with custom classes that you expect to be there. I'll keep you posted as I continue digging into the root cause analysis.

  8. Log in to comment