Jmix 1.3 release candidate

Hi everyone,

We are happy to announce that the release candidate of Jmix v.1.3 is published in nexus.jmix.io repository! Studio v.1.3 is available through the nightly channel.

Please see what’s new for upgrade instructions and the list of new features.

The final release 1.3 is scheduled for the next week. We are now performing final tests and working on the documentation.

We will greatly appreciate if you test your project with the release candidate and let us know about any issues!

5 Likes

Hi,

Creating a blank project from scratch gives this warning:

w: /home/.../app/src/main/kotlin/.../entity/User.kt: (86, 5): Override 'fun getTimeZoneId(): String?' has incorrect nullability in its signature comparing with overridden 'fun getTimeZoneId(): String'

This is what Jmix created:

    override fun getTimeZoneId(): String? {
        return timeZoneId
    }

I guess it is because the interface is defined in java which does not have the nullability operator. But it is quite ugly to have that warning from an empty project.

Hi Marc,
Thank you for noticing it.
Created issue: https://github.com/jmix-framework/jmix/issues/795

1 Like

Unable to create entity table in database. The Liquibase file is generated but ok button don’t respond. Following error is reported in ide

java.util.regex.PatternSyntaxException: Unclosed character class near index 10
[A-z0-9-]+
^
at java.base/java.util.regex.Pattern.error(Pattern.java:2027)
at java.base/java.util.regex.Pattern.clazz(Pattern.java:2695)
at java.base/java.util.regex.Pattern.sequence(Pattern.java:2138)
at java.base/java.util.regex.Pattern.expr(Pattern.java:2068)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1782)
at java.base/java.util.regex.Pattern.(Pattern.java:1428)
at java.base/java.util.regex.Pattern.compile(Pattern.java:1068)
at kotlin.text.Regex.(Regex.kt:89)
at com.haulmont.jmixstudio.ui.liquibase.ChangeLogPreviewDialog.validateFilename(ChangeLogPreviewDialog.kt:648)
at com.haulmont.jmixstudio.ui.liquibase.ChangeLogPreviewDialog.doValidate(ChangeLogPreviewDialog.kt:662)
at com.intellij.openapi.ui.DialogWrapper.doValidateAll(DialogWrapper.java:376)
at com.intellij.openapi.ui.DialogWrapper$OkAction.doAction(DialogWrapper.java:1843)
at com.intellij.openapi.ui.DialogWrapper$DialogWrapperAction.actionPerformed(DialogWrapper.java:1810)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:270)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6654)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3345)
at java.desktop/java.awt.Component.processEvent(Component.java:6419)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5029)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
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:2790)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4861)
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:891)
at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:820)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:757)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:498)
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 com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:701)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:437)
at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1671)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1629)
at com.intellij.openapi.ui.DialogWrapper.showAndGet(DialogWrapper.java:1643)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogsProcess.doRun(GenerateDiffChangelogsProcess.kt:105)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogsProcess.access$doRun(GenerateDiffChangelogsProcess.kt:38)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogsProcess$run$2.invokeSuspend(GenerateDiffChangelogsProcess.kt:54)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogsProcess$run$2.invoke(GenerateDiffChangelogsProcess.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogsProcess.run(GenerateDiffChangelogsProcess.kt:52)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogActionProcess$run$2.invokeSuspend(GenerateDiffChangelogActionProcess.kt:78)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogActionProcess$run$2.invoke(GenerateDiffChangelogActionProcess.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:165)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogActionProcess.run(GenerateDiffChangelogActionProcess.kt:40)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogAction$actionPerformed$1.invokeSuspend(GenerateDiffChangelogAction.kt:30)
at com.haulmont.jmixstudio.intellij.action.liquibase.GenerateDiffChangelogAction$actionPerformed$1.invoke(GenerateDiffChangelogAction.kt)
at com.haulmont.intellij.CoroutinesKt$launchOnEDT$1$1.invokeSuspend(Coroutines.kt:25)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
at com.intellij.openapi.application.TransactionGuardImpl.access$200(TransactionGuardImpl.java:21)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:196)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.openapi.application.impl.ApplicationImpl.lambda$invokeLater$4(ApplicationImpl.java:348)
at com.intellij.openapi.application.impl.FlushQueue.doRun(FlushQueue.java:82)
at com.intellij.openapi.application.impl.FlushQueue.runNextEvent(FlushQueue.java:131)
at com.intellij.openapi.application.impl.FlushQueue.flushNow(FlushQueue.java:47)
at com.intellij.openapi.application.impl.FlushQueue$FlushNow.run(FlushQueue.java:187)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:776)
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.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:746)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:891)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:760)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$6(IdeEventQueue.java:447)
at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:818)
at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$7(IdeEventQueue.java:446)
at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:805)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:492)
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)

Could you tell what version of the Jmix plugin you were using when this issue occurred? And what is the value of the field with the liquibase changelog file name?

Now the issue is not coming in 1.3.NIGHTLY887-213. In earlier nightly build it was there

However all screens are blank, it you reload then this message is shown but nothing happens
Screenshot 2022-06-27 jmix

Earlier jmix was asking for some dependencies (don’t remember the name )and then screens are visible in design times.

This “Frontend development build” message is shown when Vaadin loads all required NPM modules, which is a very long process first time. Moreover, it now happens twice, separately for Studio designer and for the application at runtime.
We’ll try to optimize it in the future patches.

Its not long time, the screen at design time is always blank. It does not load at all. At runtime after this message the screen load within second. Till build of 26 June it was working fine.

which framework version is latest (or to be used for preview) 1.3.0 RC1, 1.3.0 or 1.3.9999 snapshot. These three are shown when create new project

From earliest to the latest: 1.3.0-RC1, 1.3.0, 1.3.999-SNAPSHOT

1.3.999 - if project code is used then detail screen @UiController is not changed accordingly and gives error while assessing it.

NoSuchScreenException: Screen ‘shl_User.edit’ is not defined

this is detail screen

@Route(value = “:id”, layout = MainView.class)
@RoutePrefix(UserListView.ROUTE)
@UiController(“User.edit”)
@UiDescriptor(“user-detail-view.xml”)
@EditedEntityContainer(“userDc”)

but browse screen is ok
@Route(value = UserListView.ROUTE, layout = MainView.class)
@UiController(“shl_User.browse”)
@UiDescriptor(“user-list-view.xml”)
@LookupComponent(“usersTable”)
@DialogMode(width = “800px”, height = “600px”)

@umeshhodwala - thanks, we’ll look into this.
But please note that SNAPSHOT is very unstable, especially in FlowUI module now.