Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE in Arend serialization #238

Open
knisht opened this issue Jul 19, 2020 · 3 comments
Open

NPE in Arend serialization #238

knisht opened this issue Jul 19, 2020 · 3 comments

Comments

@knisht
Copy link
Collaborator

knisht commented Jul 19, 2020

Content=java.lang.NullPointerException
    at org.arend.module.serialization.ExpressionSerialization.writeBindingRef(ExpressionSerialization.java:63)
    at org.arend.module.serialization.ExpressionSerialization.visitReference(ExpressionSerialization.java:351)
    at org.arend.module.serialization.ExpressionSerialization.visitReference(ExpressionSerialization.java:31)
    at org.arend.core.expr.ReferenceExpression.accept(ReferenceExpression.java:34)
    at org.arend.module.serialization.ExpressionSerialization.visitApp(ExpressionSerialization.java:269)
    at org.arend.module.serialization.ExpressionSerialization.visitApp(ExpressionSerialization.java:31)
    at org.arend.core.expr.AppExpression.accept(AppExpression.java:72)
    at org.arend.module.serialization.ExpressionSerialization.visitApp(ExpressionSerialization.java:268)
    at org.arend.module.serialization.ExpressionSerialization.visitApp(ExpressionSerialization.java:31)
    at org.arend.core.expr.AppExpression.accept(AppExpression.java:72)
    at org.arend.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:161)
    at org.arend.module.serialization.ExpressionSerialization.writeType(ExpressionSerialization.java:51)
    at org.arend.module.serialization.ExpressionSerialization.writeParameter(ExpressionSerialization.java:134)
    at org.arend.module.serialization.ExpressionSerialization.writePattern(ExpressionSerialization.java:168)
    at org.arend.module.serialization.ExpressionSerialization.writeElimClause(ExpressionSerialization.java:194)
    at org.arend.module.serialization.ExpressionSerialization.writeElimBody(ExpressionSerialization.java:259)
    at org.arend.module.serialization.ExpressionSerialization.visitCase(ExpressionSerialization.java:499)
    at org.arend.module.serialization.ExpressionSerialization.visitCase(ExpressionSerialization.java:31)
    at org.arend.core.expr.CaseExpression.accept(CaseExpression.java:80)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:370)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:31)
    at org.arend.core.expr.LamExpression.accept(LamExpression.java:46)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:370)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:31)
    at org.arend.core.expr.LamExpression.accept(LamExpression.java:46)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:370)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:31)
    at org.arend.core.expr.LamExpression.accept(LamExpression.java:46)
    at org.arend.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:161)
    at org.arend.module.serialization.ExpressionSerialization.writeClassCall(ExpressionSerialization.java:324)
    at org.arend.module.serialization.ExpressionSerialization.visitNew(ExpressionSerialization.java:442)
    at org.arend.module.serialization.ExpressionSerialization.visitNew(ExpressionSerialization.java:31)
    at org.arend.core.expr.NewExpression.accept(NewExpression.java:72)
    at org.arend.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:161)
    at org.arend.module.serialization.ExpressionSerialization.writeClassCall(ExpressionSerialization.java:324)
    at org.arend.module.serialization.ExpressionSerialization.visitNew(ExpressionSerialization.java:442)
    at org.arend.module.serialization.ExpressionSerialization.visitNew(ExpressionSerialization.java:31)
    at org.arend.core.expr.NewExpression.accept(NewExpression.java:72)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:370)
    at org.arend.module.serialization.ExpressionSerialization.visitLam(ExpressionSerialization.java:31)
    at org.arend.core.expr.LamExpression.accept(LamExpression.java:46)
    at org.arend.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:161)
    at org.arend.module.serialization.ExpressionSerialization.writeClassCall(ExpressionSerialization.java:324)
    at org.arend.module.serialization.ExpressionSerialization.visitClassCall(ExpressionSerialization.java:345)
    at org.arend.module.serialization.ExpressionSerialization.visitClassCall(ExpressionSerialization.java:31)
    at org.arend.core.expr.ClassCallExpression.accept(ClassCallExpression.java:318)
    at org.arend.module.serialization.ExpressionSerialization.writeExpr(ExpressionSerialization.java:161)
    at org.arend.module.serialization.DefinitionSerialization.writeFunctionDefinition(DefinitionSerialization.java:282)
    at org.arend.module.serialization.DefinitionSerialization.writeDefinition(DefinitionSerialization.java:50)
    at org.arend.module.serialization.ModuleSerialization.writeGroup(ModuleSerialization.java:90)
    at org.arend.module.serialization.ModuleSerialization.writeGroup(ModuleSerialization.java:102)
    at org.arend.module.serialization.ModuleSerialization.writeModule(ModuleSerialization.java:38)
    at org.arend.source.StreamBinarySource.persist(StreamBinarySource.java:168)
    at org.arend.library.SourceLibrary.persistModule(SourceLibrary.java:355)
    at org.arend.typechecking.BinaryFileSaver$saveFile$$inlined$runReadAction$1.compute(actions.kt:79)
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:880)
    at org.arend.typechecking.BinaryFileSaver.saveFile(BinaryFileSaver.kt:75)
    at org.arend.typechecking.BinaryFileSaver.saveAll(BinaryFileSaver.kt:69)
    at org.arend.typechecking.BinaryFileSaver$2.projectClosing(BinaryFileSaver.kt:43)
    at com.intellij.openapi.project.impl.ProjectManagerImpl$1.projectClosing(ProjectManagerImpl.java:128)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:541)
    at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:139)
    at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:465)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:426)
    at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:415)
    at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:397)
    at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$3(MessageBusImpl.java:237)
    at com.sun.proxy.$Proxy64.projectClosing(Unknown Source)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.fireProjectClosing(ProjectManagerImpl.java:726)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.closeProject(ProjectManagerImpl.java:680)
    at com.intellij.openapi.project.impl.ProjectManagerImpl.closeAndDisposeAllProjects(ProjectManagerImpl.java:611)
    at com.intellij.openapi.application.impl.ApplicationImpl.disposeSelf(ApplicationImpl.java:190)
    at com.intellij.openapi.application.impl.ApplicationImpl.doExit(ApplicationImpl.java:621)
    at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:589)
    at com.intellij.openapi.application.impl.ApplicationImpl.exit(ApplicationImpl.java:578)
    at com.intellij.openapi.application.ex.ApplicationEx.exit(ApplicationEx.java:85)
    at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.quitApp(CloseProjectWindowHelper.kt:57)
    at com.intellij.openapi.wm.impl.CloseProjectWindowHelper.windowClosing(CloseProjectWindowHelper.kt:35)
    at com.intellij.openapi.wm.impl.ProjectFrameHelper$2.windowClosing(ProjectFrameHelper.java:231)
    at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
    at java.desktop/java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:357)
    at java.desktop/java.awt.Window.processWindowEvent(Window.java:2079)
    at java.desktop/javax.swing.JFrame.processWindowEvent(JFrame.java:298)
    at java.desktop/java.awt.Window.processEvent(Window.java:2038)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5026)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2773)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4858)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:727)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:751)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:749)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:748)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:974)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:847)
    at com.intellij.ide.IdeEventQueue.lambda$null$8(IdeEventQueue.java:449)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:741)
    at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$9(IdeEventQueue.java:448)
    at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:831)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:502)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 

Arend was built at ab80bda

@ice1000
Copy link
Contributor

ice1000 commented Jul 19, 2020

I hope we can use intellij's code instrumentation to get better error messages....

@knisht
Copy link
Collaborator Author

knisht commented Jul 19, 2020

You could make exceptions be more noticeable.
Errors in other IDEA plugins are shown in red popup window, but these exceptions were discovered when I was inspecting my idea.log.

Ok, here's a full line with error message, but I am not sure if it clarifies anything.
2020-07-19 00:02:32,126 [76871775] INFO - tion.impl.ui.NotificationsUtil - Too large notification Notification{id='1595106152123.1094531128', myGroupId='Arend Error Messages', myType=ERROR, myTitle='[ERROR] An exception happened during persisting of module: Category.Limits.Product', mySubtitle='null', myContent='java.lang.NullPointerException

@valis
Copy link
Collaborator

valis commented Jul 22, 2020

It's hard to tell what's causing this problem, but a few days ago I found and fixed a bug related to patterns. I think it might cause this exception, but I cannot tell for sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants