AlexFalappa / nb-springboot

NetBeans IDE plugin supporting programming with Spring Boot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NullPointerException on parent in multi-module project

didiez opened this issue · comments

Affected version: 3.1

The following error shows up when trying to access Properties > Spring Boot on the parent (<packaging>pom</packaging>) of a multi-module project.

java.lang.NullPointerException
	at java.base/java.util.Objects.requireNonNull(Objects.java:221)
	at com.github.alexfalappa.nbspringboot.projects.customizer.BootPanel.init(BootPanel.java:82)
	at com.github.alexfalappa.nbspringboot.projects.customizer.BootPanelProvider.createComponent(BootPanelProvider.java:49)
	at org.netbeans.spi.project.ui.support.ProjectCustomizer$DelegateCategoryProvider.create(ProjectCustomizer.java:604)
	at org.netbeans.modules.project.uiapi.CustomizerPane.setCategory(CustomizerPane.java:234)
	at org.netbeans.modules.project.uiapi.CustomizerPane.access$200(CustomizerPane.java:47)
	at org.netbeans.modules.project.uiapi.CustomizerPane$CategoryChangeListener.propertyChange(CustomizerPane.java:320)
	at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266)
	at org.netbeans.modules.project.uiapi.CategoryModel.firePropertyChange(CategoryModel.java:93)
	at org.netbeans.modules.project.uiapi.CategoryModel.setCurrentCategory(CategoryModel.java:67)
	at org.netbeans.modules.project.uiapi.CategoryView.propertyChange(CategoryView.java:158)
	at java.desktop/java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
	at java.desktop/java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266)
	at org.openide.explorer.ExplorerManager$2.run(ExplorerManager.java:866)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEvent(NbMutexEventProvider.java:95)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:70)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:66)
	at org.openide.util.Mutex.readAccess(Mutex.java:235)
	at org.openide.explorer.ExplorerManager.fireInAWT(ExplorerManager.java:863)
	at org.openide.explorer.ExplorerManager$1AtomicSetSelectedNodes.fire(ExplorerManager.java:269)
	at org.openide.explorer.ExplorerManager.setSelectedNodes(ExplorerManager.java:280)
	at org.openide.explorer.ExplorerManager$1SetExploredContextAndSelection.run(ExplorerManager.java:368)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:172)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation$1R.run(DefaultMutexImplementation.java:1016)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.doWrapperAccess(DefaultMutexImplementation.java:1033)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:162)
	at org.openide.util.Mutex.readAccess(Mutex.java:235)
	at org.openide.explorer.ExplorerManager.setExploredContextAndSelection(ExplorerManager.java:395)
	at org.openide.explorer.view.BeanTreeView.selectionChanged(BeanTreeView.java:124)
	at org.openide.explorer.view.TreeView.callSelectionChanged(TreeView.java:808)
	at org.openide.explorer.view.TreeView$TreePropertyListener.run(TreeView.java:1450)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation$1Exec.run(DefaultMutexImplementation.java:952)
	at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1913)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:958)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:921)
	at org.netbeans.modules.openide.util.DefaultMutexImplementation.postReadRequest(DefaultMutexImplementation.java:287)
	at org.openide.util.Mutex.postReadRequest(Mutex.java:346)
	at org.openide.explorer.view.TreeView$TreePropertyListener.valueChanged(TreeView.java:1419)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:641)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1111)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:297)
	at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:191)
	at java.desktop/javax.swing.JTree.setSelectionPath(JTree.java:1656)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2736)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:4016)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(BasicTreeUI.java:3993)
	at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3952)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:288)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6629)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6397)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4544)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	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:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	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:742)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
[catch] 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.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1074)
	at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1124)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1096)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:106)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:115)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:75)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
	at org.openide.util.Mutex.readAccess(Mutex.java:193)
	at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1081)
	at java.desktop/java.awt.Component.show(Component.java:1716)
	at java.desktop/java.awt.Component.setVisible(Component.java:1663)
	at java.desktop/java.awt.Window.setVisible(Window.java:1031)
	at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.netbeans.modules.maven.customizer.CustomizerProviderImpl$1.run(CustomizerProviderImpl.java:166)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEvent(NbMutexEventProvider.java:95)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:70)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:66)
	at org.openide.util.Mutex.readAccess(Mutex.java:235)
	at org.netbeans.modules.maven.customizer.CustomizerProviderImpl.showCustomizer(CustomizerProviderImpl.java:147)
	at org.netbeans.modules.maven.customizer.CustomizerProviderImpl.showCustomizer(CustomizerProviderImpl.java:115)
	at org.netbeans.modules.maven.customizer.CustomizerProviderImpl.showCustomizer(CustomizerProviderImpl.java:110)
	at org.netbeans.modules.project.ui.actions.CustomizeProject$1$1.run(CustomizeProject.java:135)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	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:740)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
	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)

Does it make sense to show this category (Spring Boot) in a parent project (pom packaging)?
You cannot run/debug the parent in a multi-module project, right?