mustfun / mybatis-lite

Mybatis - Plugin Free版
MIT License
206 stars 65 forks source link

mapper生成xml配置时发生NPE #46

Closed nmyphp closed 4 years ago

nmyphp commented 4 years ago

IDEA版本: 2018.2.4 Mybatis-Lite版本:1.0.12 在xxxMapper类中定义方法前缀只要不包含在下面的列表中,就会发生NPE image

UserMapper.java定义如下方法

List<User> obtain(List<Long> ids);

生成XML时,异常信息如下:

java.lang.NullPointerException
    at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:75)
    at com.intellij.psi.impl.source.tree.ChangeUtil.lambda$decodeInformation$1(ChangeUtil.java:71)
    at com.intellij.psi.impl.DebugUtil.performPsiModification(DebugUtil.java:562)
    at com.intellij.psi.impl.source.tree.ChangeUtil.decodeInformation(ChangeUtil.java:71)
    at com.intellij.psi.impl.source.tree.CompositePsiElement.addAfter(CompositePsiElement.java:164)
    at com.intellij.util.xml.impl.DomInvocationHandler.a(DomInvocationHandler.java:820)
    at com.intellij.util.xml.impl.DomInvocationHandler.addCollectionChild(DomInvocationHandler.java:787)
    at com.intellij.util.xml.impl.AddChildInvocation.invoke(AddChildInvocation.java:43)
    at com.intellij.util.xml.impl.DomInvocationHandler.invoke(DomInvocationHandler.java:681)
    at com.github.mustfun.mybatis.plugin.dom.model.Mapper$$EnhancerByJetBrainsMainCglib$$7c6afced.addSelect(<generated>)
    at com.github.mustfun.mybatis.plugin.generate.SelectGenerator.getTarget(SelectGenerator.java:24)
    at com.github.mustfun.mybatis.plugin.generate.StatementGenerator.setupTag(StatementGenerator.java:143)
    at com.github.mustfun.mybatis.plugin.generate.StatementGenerator.execute(StatementGenerator.java:125)
    at com.github.mustfun.mybatis.plugin.generate.StatementGenerator$2.selected(StatementGenerator.java:85)
    at com.github.mustfun.mybatis.plugin.ui.UiComponentFacade$3.run(UiComponentFacade.java:160)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1038)
    at com.github.mustfun.mybatis.plugin.ui.UiComponentFacade.setActionForExecutableListener(UiComponentFacade.java:136)
    at com.github.mustfun.mybatis.plugin.ui.UiComponentFacade.access$000(UiComponentFacade.java:35)
    at com.github.mustfun.mybatis.plugin.ui.UiComponentFacade$4.run(UiComponentFacade.java:166)
    at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
    at com.intellij.ui.popup.AbstractPopup.lambda$dispose$8(AbstractPopup.java:1417)
    at com.intellij.util.ui.UIUtil.invokeLaterIfNeeded(UIUtil.java:3097)
    at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.java:183)
    at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.java:132)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:190)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.doWhenFocusSettlesDown(IdeFocusManagerImpl.java:58)
    at com.intellij.ui.popup.AbstractPopup.dispose(AbstractPopup.java:1411)
    at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:48)
    at com.intellij.openapi.util.Disposer$1.execute(Disposer.java:44)
    at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:138)
    at com.intellij.openapi.util.objectTree.ObjectNode$1.execute(ObjectNode.java:107)
    at com.intellij.openapi.util.objectTree.ObjectTree.executeActionWithRecursiveGuard(ObjectTree.java:182)
    at com.intellij.openapi.util.objectTree.ObjectNode.execute(ObjectNode.java:107)
    at com.intellij.openapi.util.objectTree.ObjectTree.executeAll(ObjectTree.java:151)
    at com.intellij.openapi.util.Disposer.dispose(Disposer.java:129)
    at com.intellij.ui.popup.AbstractPopup.cancel(AbstractPopup.java:688)
    at com.intellij.ui.popup.AbstractPopup.closeOk(AbstractPopup.java:627)
    at com.intellij.openapi.ui.popup.PopupChooserBuilder.closePopup(PopupChooserBuilder.java:459)
    at com.intellij.openapi.ui.popup.PopupChooserBuilder.access$100(PopupChooserBuilder.java:32)
    at com.intellij.openapi.ui.popup.PopupChooserBuilder$3.actionPerformed(PopupChooserBuilder.java:444)
    at javax.swing.JComponent$ActionStandin.actionPerformed(JComponent.java:3426)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2883)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2944)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2846)
    at java.awt.Component.processEvent(Component.java:6325)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4903)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4725)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
    at com.intellij.ide.IdeKeyboardFocusManager.dispatchEvent(IdeKeyboardFocusManager.java:27)
    at java.awt.Component.dispatchEventImpl(Component.java:4774)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4725)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:737)
    at java.awt.EventQueue$4.run(EventQueue.java:735)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:781)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:700)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:382)
    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)