NullPointerException when creating new screen ins Studio 7.1

Hello CUBA Team,

when I create a new screen in Studio 7.1. I always get a NullPointerException:

java.lang.NullPointerException
	at com.haulmont.studio.backend.util.intellij.CubaModuleManager.getModule(SourceFile:60)
	at com.haulmont.studio.backend.util.intellij.CubaModuleManager.getModuleMain(SourceFile:40)
	at com.haulmont.studio.backend.util.intellij.CubaModuleManager.getCorrespondingMainModule(SourceFile:103)
	at com.haulmont.studio.intellij.action.creation.template.cuba.ScreenCreationForm.addModuleFieldIfNeeded(SourceFile:264)
	at com.haulmont.studio.intellij.action.creation.template.cuba.ScreenCreationForm.init(SourceFile:96)
	at com.haulmont.studio.intellij.action.creation.template.BaseTemplateCreationForm$Builder.build(SourceFile:357)
	at com.haulmont.studio.intellij.action.creation.template.cuba.CubaScreensGroup.lambda$createElements$0(SourceFile:75)
	at com.intellij.util.containers.FactoryMap$3.create(FactoryMap.java:201)
	at com.intellij.util.containers.FactoryMap.get(FactoryMap.java:65)
	at com.haulmont.studio.intellij.action.creation.template.TemplateSettingsStep._init(SourceFile:29)
	at com.intellij.ide.wizard.AbstractWizard.updateStep(AbstractWizard.java:459)
	at com.intellij.ide.wizard.AbstractWizard.updateStep(AbstractWizard.java:387)
	at com.intellij.ide.wizard.AbstractWizard.doNextAction(AbstractWizard.java:411)
	at com.haulmont.studio.intellij.action.creation.template.CreateFromTemplateWizard.doNextAction(SourceFile:57)
	at com.intellij.ide.wizard.AbstractWizard$5.actionPerformed(AbstractWizard.java:208)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6548)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
	at java.awt.Component.processEvent(Component.java:6313)
	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.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
	at java.awt.Container.dispatchEventImpl(Container.java:2281)
	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:719)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:664)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.awt.Dialog.show(Dialog.java:1077)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:698)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:430)
	at com.intellij.openapi.ui.DialogWrapper.invokeShow(DialogWrapper.java:1681)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1630)
	at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1645)
	at com.haulmont.studio.intellij.action.creation.template.cuba.CubaScreensGroup.createElements(SourceFile:78)
	at com.haulmont.studio.intellij.action.CubaElementCreationAction.doActionPerformed(SourceFile:50)
	at com.haulmont.studio.intellij.action.CubaProjectAction.actionPerformed(SourceFile:80)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:258)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:153)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:273)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:287)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:283)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:106)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:277)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:111)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:111)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:522)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:35)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:544)
	at java.awt.Component.processMouseEvent(Component.java:6548)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
	at java.awt.Component.processEvent(Component.java:6313)
	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.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
	at java.awt.Container.dispatchEventImpl(Container.java:2281)
	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:719)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:664)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:363)
	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)

Greetings,
Andreas

1 Like

Hello. Unfortunately, we can not reproduce the problem. Can you please provide more information about the problem or attach the small demo project?

Hi,

here the steps to reproduce the problem:

  1. Download sample-sales-master from GitHub - cuba-platform/sample-sales: Sample application from the Quick Start tutorial for CUBA 6.10 and unpack in StudioProjects
  2. CUBA-Studio → File → New → Project from existing source
  3. Select unpacked sample-sales-master → OK
  4. Option “Create project from existing source” → Next
  5. Leave project name, location and format with default values → Next
  6. Default value (all directories checked) → Next
  7. Next
  8. Next
  9. Default SDK (1.8.0_201) → Next
  10. Import Gradle project
  11. Check “Use auto-import” → OK
  12. Dialog “Migration Required” → Continue (Message “Module prefix migration skipped. Some functionality will be unavailable.” in Eventlog)
  13. In CUBA-Tree select Generic-UI → Screens
  14. Open context menu → New → Screen
  15. Select “Login Window” → Next

Then in the right bottom corner a red exclamation mark flashes and you have the error.

My system

  • Windows 10
  • CUBA Studio 7.2

Greetings,
Andreas

1 Like

Sorry, but we can’t reproduce the problem by described steps to reproduce. Can you please attach the small demo project where this situation happens?

Hi,

here the project: cuba7-sales6.zip (183.5 KB)

Greetings,
Andreas

Try to remove .idea folder and import your project again.

I tried, but the problem still exists. :frowning:

Hi Andreas!

How do you import the project? Try Import Project action from Welcome screen, or File -> New -> Project from Existing Sources... -> Choose project directory -> OK -> Import project from external model -> CUBA -> …

Hi,

in the Dialog “Import poject from external model” I only have Eclipse, Gradle and Maven as option, not CUBA. :frowning:.

Greetings,
Andreas

Try to use Gradle option.

1 Like

Hey, this works! :smile:

After importing the application with Import Project action from Welcome screen, or File -> New -> Project from Existing Sources... -> Choose project directory -> OK -> Import project from external model -> Gradle -> … I can create new screens without errors.

Thanks
Andreas