cuba-platform / bpm Goto Github PK
View Code? Open in Web Editor NEWBusiness Process Management Addon
Home Page: https://www.cuba-platform.com/
License: Apache License 2.0
Business Process Management Addon
Home Page: https://www.cuba-platform.com/
License: Apache License 2.0
AR: Unsaved changes dialog is show
Original issue: https://youtrack.haulmont.com/issue/PL-9191
Now, we can use standard actions frame only with AbstractWindow screens.
Follow BPM QS up to this step
Click OK to start the process with an attachment
Actual behavior: BpmException. Without attachments the process is started correctly.
com.haulmont.cuba.core.global.RemoteException:
---
com.haulmont.bpm.exception.BpmException: Cannot persist ProcInstance with filled procAttachments collection.
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:129)
at sun.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy273.startProcess(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94)
at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:154)
at com.sun.proxy.$Proxy65.startProcess(Unknown Source)
at com.haulmont.bpm.gui.action.StartProcessAction._startProcess(StartProcessAction.java:88)
at com.haulmont.bpm.gui.action.StartProcessAction.lambda$actionPerform$0(StartProcessAction.java:70)
at com.haulmont.cuba.web.gui.WebWindow.fireWindowClosed(WebWindow.java:910)
at com.haulmont.cuba.web.gui.WebWindow.onClose(WebWindow.java:902)
at com.haulmont.cuba.web.gui.WebWindow.close(WebWindow.java:1199)
at com.haulmont.cuba.gui.components.AbstractWindow.close(AbstractWindow.java:283)
at com.haulmont.bpm.gui.form.standard.StandardProcForm.onWindowCommit(StandardProcForm.java:150)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.haulmont.cuba.gui.xml.DeclarativeAction.actionPerform(DeclarativeAction.java:92)
at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:45)
at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:37)
at sun.reflect.GeneratedMethodAccessor209.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
at com.vaadin.ui.Button.fireClick(Button.java:377)
at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54)
at com.vaadin.ui.Button$1.click(Button.java:54)
at sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361)
at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:306)
at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:197)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107)
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73)
at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Remove xsi:schemaLocation from spring.xml
BPM standard form doesn't allow to specify required process roles
Original issue: https://youtrack.haulmont.com/issue/PL-9231
Introduce special option for BPM editor - whether to open it as browser TAB or as usual window. Enable this option only if
cuba.web.mainTabSheetMode = MANAGED
Original issue: https://youtrack.haulmont.com/issue/PL-7632
Support collection "enumeration" dynamic attributes
🔗 Related links: {"relates to:": "https://youtrack.haulmont.com/issue/PL-9251"}
Original issue: https://youtrack.haulmont.com/issue/PL-9267
SAXParseException: Content is not allowed in prolog.
Relates to cuba-platform/cuba#894
When localization is not defined for BPM process actions return the key and not an empty string
Original issue: https://youtrack.haulmont.com/issue/PL-9264
If the user task is followed by the service task then when the user completes the task, the service task is started in the same transaction. There may be cases, however, when the service task is being executed for a long time. All this time the user task will be still in the list because its endDate field modification is not flushed to the database.
Original issue: https://youtrack.haulmont.com/issue/PL-10495
BPM modeler should indicate that cuba session was expired
Original issue: https://youtrack.haulmont.com/issue/PL-7808
AR: There is no "Demo" elements group
Original issue: https://youtrack.haulmont.com/issue/PL-9190
There must be a way to change the modeler interface language
Original issue: https://youtrack.haulmont.com/issue/PL-9832
At the moment, it is hard to find the problem during model deployment. See attached log for instance
Original issue: https://youtrack.haulmont.com/issue/PL-10120
Forum topic: https://www.cuba-platform.com/discuss/t/start-bpm-from-service-failed/8376
The problem is that MySQL has a default transaction isolation level REPEATABLE READ while most other databases use the READ COMMITTED by default. For REPEATABLE READ level an NPE may be thrown (see the project from the sample). The workaround is to change the isolation level to READ COMMITTED.
If a process form was opened with the button generated by the procActionsFrame, then it's impossible to get an instance of the process form and get values filled in this form when the form is closed.
Original issue: https://youtrack.haulmont.com/issue/PL-9461
app.log:
2018-07-06 16:51:34.613 DEBUG [http-nio-8080-exec-22/app-core/admin] com.haulmont.cuba.core.app.RdbmsStore - loadList: metaClass=bpm$ProcAttachment, view=com.haulmont.bpm.entity.ProcAttachment/procAttachment-browse, query=select a from bpm$ProcAttachment a where a.procInstance.entity.entityId = :ds_contractDs order by a.createTs, max=10000
2018-07-06 16:51:36.166 DEBUG [http-nio-8080-exec-12/app/admin] com.haulmont.cuba.web.gui.WebWindow - Validation failed: com.haulmont.cuba.gui.components.RequiredValueMissingException: Number required
2018-07-06 16:51:38.370 DEBUG [http-nio-8080-exec-18/app-core/admin] com.haulmont.cuba.core.app.RdbmsStore - commit: commitInstances=[com.company.bpmdemo.entity.Contract-0ed72831-8d87-57d0-2a48-433a2d706b62 [new]], removeInstances=[]
2018-07-06 16:51:38.375 DEBUG [http-nio-8080-exec-18/app-core/admin] com.haulmont.cuba.core.app.RdbmsStore - loadList: metaClass=bpm$ProcAttachment, view=com.haulmont.bpm.entity.ProcAttachment/procAttachment-browse, query=select a from bpm$ProcAttachment a where a.procInstance.entity.entityId = :ds_contractDs order by a.createTs, max=10000
2018-07-06 16:51:38.447 DEBUG [http-nio-8080-exec-18/app-core/admin] com.haulmont.cuba.core.app.RdbmsStore - load: metaClass=bpm$ProcInstance, id=d32cd2cb-fd99-6137-f9c3-758f3e55129c, view=com.haulmont.bpm.entity.ProcInstance/procInstance-full
2018-07-06 16:51:38.471 ERROR [http-nio-8080-exec-18/app/admin] com.haulmont.cuba.web.log.AppLog - Exception in com.haulmont.cuba.web.toolkit.ui.CubaButton:
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method click in com.vaadin.shared.ui.button.ButtonServerRpc
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:160) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:119) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:444) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:409) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:274) [vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:90) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1435) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:361) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:312) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:203) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[servlet-api.jar:na]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-websocket.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:107) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:73) ~[spring-web-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:107) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[catalina.jar:8.5.23]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[catalina.jar:8.5.23]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ~[catalina.jar:8.5.23]
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) ~[catalina.jar:8.5.23]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[catalina.jar:8.5.23]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[catalina.jar:8.5.23]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) ~[tomcat-coyote.jar:8.5.23]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote.jar:8.5.23]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-coyote.jar:8.5.23]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) ~[tomcat-coyote.jar:8.5.23]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote.jar:8.5.23]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_171]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util.jar:8.5.23]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_171]
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
... 38 common frames omitted
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in com.haulmont.cuba.web.gui.components.WebButton$$Lambda$88/180140366 failed.
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.vaadin.ui.Button.fireClick(Button.java:377) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
at com.haulmont.cuba.web.toolkit.ui.CubaButton.fireClick(CubaButton.java:54) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.vaadin.ui.Button$1.click(Button.java:54) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
... 43 common frames omitted
Caused by: com.haulmont.cuba.core.global.EntityAccessException: Unable to load entity bpm$ProcInstance-d32cd2cb-fd99-6137-f9c3-758f3e55129c because it has been deleted or access denied
at com.haulmont.cuba.client.sys.DataManagerClientImpl.reload(DataManagerClientImpl.java:89) ~[cuba-client-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.client.sys.DataManagerClientImpl.reload(DataManagerClientImpl.java:74) ~[cuba-client-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.client.sys.DataManagerClientImpl.reload(DataManagerClientImpl.java:69) ~[cuba-client-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.client.sys.DataManagerClientImpl.reload(DataManagerClientImpl.java:64) ~[cuba-client-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.bpm.gui.procactions.ProcActionsFrame$Initializer.lambda$standard$0(ProcActionsFrame.java:443) ~[bpm-gui-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.bpm.gui.action.ProcAction.fireAfterActionListeners(ProcAction.java:58) ~[bpm-gui-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.bpm.gui.action.StartProcessAction._startProcess(StartProcessAction.java:89) ~[bpm-gui-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.bpm.gui.action.StartProcessAction.actionPerform(StartProcessAction.java:77) ~[bpm-gui-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:45) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:37) ~[cuba-web-6.9-SNAPSHOT.jar:6.9-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510) ~[vaadin-server-7.7.13.cuba.9.jar:7.7.13.cuba.9]
... 49 common frames omitted
Create 2 process: the main process and the subprocess. The main process must call the sub process winth the "Call activity" element.
Add localization to task outcomes of the second process - when the task comes to the user, outcomes names won't be localized.
Original issue: https://youtrack.haulmont.com/issue/PL-8305
ProcessRuntimeManagerBean:93
ProcessInstance activitiProcessInstance = runtimeService.startProcessInstanceById(procInstance.getProcDefinition().getActId(), variables);
procInstance.setActProcessInstanceId(activitiProcessInstance.getProcessInstanceId());
procInstance.setStartComment(comment);
procInstance.setActive(true);
procInstance.setStartDate(timeSource.currentTimestamp());
procInstance.setStartedBy(userSessionSource.getUserSession().getCurrentOrSubstitutedUser());
procInstance = em.merge(procInstance);
In fact, after runtimeService.startProcessInstanceById call process is already completed, but here we rewrite active flag and other variables.
Original issue: https://youtrack.haulmont.com/issue/PL-9292
Provide a way to change BPM ProcActionFrames buttons captions
Original issue: https://youtrack.haulmont.com/issue/PL-9488
If the form is written using the v7 screen API, i.e. screen controller extends Screen
not Window
class then the result of the getFormResult()
and getComment()
methods is ignored when the form is committed
Instead of SAXParseException: cvc-complex-type.4: Attribute 'sourceRef' must appear on element 'sequenceFlow' display something like "Some transition is not connected to a source. Try pull the beginning of each arrow to a source element center."
Original issue: https://youtrack.haulmont.com/issue/PL-7212
On MySQL the additional "delete_ts_nn" is added and unique is created with trigger
create unique index IDX_REPORT_REPORT_UNIQ_NAME on REPORT_REPORT (NAME, DELETE_TS_NN)^
create trigger REPORT_REPORT_DELETE_TS_NN_TRIGGER before update on REPORT_REPORT
for each row
if not(NEW.DELETE_TS <=> OLD.DELETE_TS) then
set NEW.DELETE_TS_NN = if (NEW.DELETE_TS is null, '1000-01-01 00:00:00.000', NEW.DELETE_TS);
end if^
But the following scripts found:
create unique index IDX_BPM_PROC_MODEL_UNIQ_NAME on BPM_PROC_MODEL (NAME, DELETE_TS)^
-- end BPM_PROC_MODEL
-- begin BPM_STENCIL_SET
create unique index IDX_BPM_STENCIL_SET_UNIQ_NAME on BPM_STENCIL_SET (NAME, DELETE_TS) ^
-- end BPM_STENCIL_SET
create table BPM_PROC_MODEL (
ID varchar(32),
CREATE_TS datetime(3),
CREATED_BY varchar(50),
VERSION integer,
UPDATE_TS datetime(3),
UPDATED_BY varchar(50),
DELETE_TS datetime(3),
DELETED_BY varchar(50),
--
NAME varchar(190) not null,
ACT_MODEL_ID varchar(255),
DESCRIPTION text,
--
primary key (ID)
)^
-- end BPM_PROC_MODEL
-- begin BPM_STENCIL_SET
create table BPM_STENCIL_SET (
ID varchar(32),
CREATE_TS datetime(3),
CREATED_BY varchar(50),
VERSION integer,
UPDATE_TS datetime(3),
UPDATED_BY varchar(50),
DELETE_TS datetime(3),
DELETED_BY varchar(50),
--
NAME varchar(190) not null,
JSON_DATA longtext not null,
--
primary key (ID)
)^
Original issue: https://youtrack.haulmont.com/issue/PL-9954
Exposing services in REST have many limitations such as:
According to feedback, developers usually end up with creating custom Spring REST Controllers:
https://www.cuba-platform.com/discuss/t/there-is-a-way-to-generate-html-from-a-rest-api-call/3185/2
https://www.cuba-platform.com/discuss/t/how-to-restrict-rest-api-v2-to-allow-post-only/3166
So instead of reinventing spring-mvc within our REST services maybe we need to enhance custom controllers usage, here are some ideas on it:
Original issue: https://youtrack.haulmont.com/issue/PL-10144
====Steps:====
====Actual Result:====
All the roles, including empty and half-empty, are saved and counted in Model editor
!PL-7747_1.png!
!PL-7747_2.png!
====Expected Result:====
Only completely fulfilled roles are saved and counted
Original issue: https://youtrack.haulmont.com/issue/PL-7747
Service for generation of process diagram images
Original issue: https://youtrack.haulmont.com/issue/PL-9328
There should be a button for in the process instance editor
"Remove" action in the process instances browser should probably also cancel the process first.
Original issue: https://youtrack.haulmont.com/issue/PL-10505
com.haulmont.bpm.web.App class is not used for a long time since BPM is not runnable application anymore
Related to cuba-platform/cuba-gradle-plugin#27
<logger name="com.haulmont.cuba.web.sys" level="DEBUG"/>
At present, the ProcInstance object (alongside with the ProcActors) should be persisted before it is passed to the ProcessRuntimeManager.startProcess()
Original issue: https://youtrack.haulmont.com/issue/PL-10739
Original issue: https://youtrack.haulmont.com/issue/PL-5805
null check must be done on userid since candidate roles don't have a user id.
see
https://www.cuba-platform.com/discuss/t/npe-while-assigning-candidate-users-in-process-instance/8550
java.lang.NullPointerException
at java.util.UUID.fromString(UUID.java:192)
at com.haulmont.bpm.core.ProcessRuntimeManagerBean.getCandidateUsers(ProcessRuntimeManagerBean.java:435)
at com.haulmont.bpm.core.ProcessRuntimeManagerBean.createNotAssignedProcTask(ProcessRuntimeManagerBean.java:377)
at com.haulmont.bpm.core.engine.listener.BpmActivitiListener.onEvent(BpmActivitiListener.java:72)
at org.activiti.engine.impl.bpmn.helper.DelegateActivitiEventListener.onEvent(DelegateActivitiEventListener.java:45)
at org.activiti.engine.delegate.event.impl.ActivitiEventSupport.dispatchEvent(ActivitiEventSupport.java:105)
at org.activiti.engine.delegate.event.impl.ActivitiEventSupport.dispatchEvent(ActivitiEventSupport.java:98)
at org.activiti.engine.delegate.event.impl.ActivitiEventDispatcherImpl.dispatchEvent(ActivitiEventDispatcherImpl.java:74)
at org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior.execute(UserTaskActivityBehavior.java:209)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:60)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:49)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerTake.execute(AtomicOperationTransitionNotifyListenerTake.java:80)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionDestroyScope.execute(AtomicOperationTransitionDestroyScope.java:116)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerEnd.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerEnd.java:35)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:453)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.take(ExecutionEntity.java:431)
at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performOutgoingBehavior(BpmnActivityBehavior.java:140)
at org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior.performDefaultOutgoingBehavior(BpmnActivityBehavior.java:66)
at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.leave(FlowNodeActivityBehavior.java:44)
at org.activiti.engine.impl.bpmn.behavior.FlowNodeActivityBehavior.execute(FlowNodeActivityBehavior.java:36)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:60)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStartInitial.eventNotificationsCompleted(AtomicOperationProcessStartInitial.java:45)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationProcessStart.eventNotificationsCompleted(AtomicOperationProcessStart.java:64)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:636)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:629)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.start(ExecutionEntity.java:381)
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:110)
at org.activiti.engine.impl.cmd.StartProcessInstanceCmd.execute(StartProcessInstanceCmd.java:37)
at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:24)
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:57)
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
at com.haulmont.bpm.core.engine.spring.ExtSpringTransactionInterceptor.execute(ExtSpringTransactionInterceptor.java:36)
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40)
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35)
at org.activiti.engine.impl.RuntimeServiceImpl.startProcessInstanceById(RuntimeServiceImpl.java:112)
at com.haulmont.bpm.core.ProcessRuntimeManagerBean.startProcess(ProcessRuntimeManagerBean.java:85)
at com.haulmont.bpm.service.ProcessRuntimeServiceBean.startProcess(ProcessRuntimeServiceBean.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:84)
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:96)
at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy301.startProcess(Unknown Source)
at eu.octorilla.service.InvoiceServiceBean.startInvoiceBpm(InvoiceServiceBean.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:84)
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:96)
at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy305.startInvoiceBpm(Unknown Source)
at eu.octorilla.listener.InvoiceEntityListener.onBeforeInsert(InvoiceEntityListener.java:18)
at eu.octorilla.listener.InvoiceEntityListener.onBeforeInsert(InvoiceEntityListener.java:11)
at com.haulmont.cuba.core.sys.listener.EntityListenerManager.fireListener(EntityListenerManager.java:242)
at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport$OnCommitEntityVisitor.visit(PersistenceImplSupport.java:542)
at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport.beforeStore(PersistenceImplSupport.java:236)
at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport.traverseEntities(PersistenceImplSupport.java:222)
at com.haulmont.cuba.core.sys.persistence.PersistenceImplSupport$ContainerResourceSynchronization.beforeCommit(PersistenceImplSupport.java:408)
at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:936)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:748)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:734)
at com.haulmont.cuba.core.sys.TransactionImpl.commit(TransactionImpl.java:104)
at com.haulmont.cuba.core.app.RdbmsStore.commit(RdbmsStore.java:476)
at com.haulmont.cuba.core.app.DataManagerBean.commit(DataManagerBean.java:161)
at com.haulmont.cuba.core.app.DataServiceBean.commit(DataServiceBean.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:84)
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:117)
at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy255.commit(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.haulmont.cuba.core.sys.remoting.LocalServiceInvokerImpl.invoke(LocalServiceInvokerImpl.java:94)
at com.haulmont.cuba.web.sys.remoting.LocalServiceProxy$LocalServiceInvocationHandler.invoke(LocalServiceProxy.java:154)
at com.sun.proxy.$Proxy33.commit(Unknown Source)
at com.haulmont.cuba.client.sys.DataManagerClientImpl.commit(DataManagerClientImpl.java:100)
at com.haulmont.cuba.gui.data.impl.GenericDataSupplier.commit(GenericDataSupplier.java:105)
at com.haulmont.cuba.gui.data.impl.DsContextImpl.commit(DsContextImpl.java:166)
at com.haulmont.cuba.gui.components.EditorWindowDelegate.commit(EditorWindowDelegate.java:271)
at com.haulmont.cuba.web.gui.WebWindow$Editor.commitAndClose(WebWindow.java:1773)
at com.haulmont.cuba.gui.components.AbstractEditor.commitAndClose(AbstractEditor.java:111)
at com.haulmont.cuba.gui.components.EditorWindowDelegate.lambda$wrapBy$1(EditorWindowDelegate.java:94)
at com.haulmont.cuba.gui.components.actions.BaseAction.actionPerform(BaseAction.java:228)
at com.haulmont.cuba.web.gui.components.WebButton.performAction(WebButton.java:46)
at com.haulmont.cuba.web.gui.components.WebButton.lambda$new$61446b05$1(WebButton.java:38)
at sun.reflect.GeneratedMethodAccessor261.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1037)
at com.vaadin.ui.Button.fireClick(Button.java:377)
Activiti started to support HSQL database. No custom support is needed any more.
Original issue: https://youtrack.haulmont.com/issue/PL-7246
Change title of Model editor to Business Process '${NAME}'
Original issue: https://youtrack.haulmont.com/issue/PL-6969
For the Process Task (bpm$ProcTask) and Process Definition (bpm$ProcDefinition) entities, this exception appears only when clicking Edit
A.R. Exception will appear
java.lang.UnsupportedOperationException: Datasource must support paging
at com.haulmont.cuba.web.gui.components.WebRowsCount.createDatasourceAdapter(WebRowsCount.java:185)
at com.haulmont.cuba.web.gui.components.WebRowsCount.setDatasource(WebRowsCount.java:115)
at com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor.addTable(EntityInspectorEditor.java:814)
at com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor.createDataComponents(EntityInspectorEditor.java:381)
at com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorEditor.init(EntityInspectorEditor.java:192)
at com.haulmont.cuba.gui.components.AbstractWindow.init(AbstractWindow.java:93)
at com.haulmont.bali.events.EventHub.publish(EventHub.java:170)
at com.haulmont.cuba.gui.screen.Screen.fireEvent(Screen.java:133)
at com.haulmont.cuba.gui.screen.UiControllerUtils.fireEvent(UiControllerUtils.java:54)
at com.haulmont.cuba.web.sys.WebScreens.createScreen(WebScreens.java:219)
at com.haulmont.cuba.web.sys.WebScreens.create(WebScreens.java:154)
at com.haulmont.cuba.web.sys.WebScreens.openWindow(WebScreens.java:549)
at com.haulmont.cuba.gui.screen.compatibility.LegacyFrame.openWindow(LegacyFrame.java:100)
at com.haulmont.cuba.gui.app.core.entityinspector.EntityInspectorBrowse$CreateAction.actionPerform(EntityInspectorBrowse.java:469)
at com.haulmont.cuba.web.gui.components.WebButton.buttonClicked(WebButton.java:60)
at com.haulmont.cuba.web.widgets.CubaButton.fireClick(CubaButton.java:76)
at com.vaadin.ui.Button$1.click(Button.java:57)
Support collections of dynamic attributes in RuntimePropertiesFrame
Original issue: https://youtrack.haulmont.com/issue/PL-9266
Case 1
Case 2
Create some BPM model with attachmentsVisible=true
Create a new Process Instances
Select Process Definition
Save Process Instances
Click Start Process button
Upload File to the attachments
Save the process
Select the saved process
Open editor the process instance
When the process reaches a ScriptTask with groovy script, it fails with the exception:
com.haulmont.cuba.core.global.RemoteException:
---
org.activiti.engine.ActivitiException: Can't find scripting engine for 'groovy'
at com.haulmont.cuba.core.sys.ServiceInterceptor.aroundInvoke(ServiceInterceptor.java:129)
at sun.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.JdkDynamicA
opProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy269.startProcess(Unknown Source)
A.R. Exception will appear
The same exception appears in the Process Definitions screen when clicking Edit
java.lang.NullPointerException
at com.haulmont.cuba.web.gui.components.WebPickerField.actionPropertyChanged(WebPickerField.java:295)
at com.haulmont.bali.events.EventHub.publish(EventHub.java:170)
at com.haulmont.cuba.gui.components.AbstractAction.firePropertyChange(AbstractAction.java:272)
at com.haulmont.cuba.gui.components.PickerField$StandardAction.setEditable(PickerField.java:248)
at com.haulmont.cuba.gui.components.PickerField$StandardAction.editableChanged(PickerField.java:275)
at com.haulmont.cuba.web.gui.components.WebPickerField.setEditable(WebPickerField.java:433)
at com.haulmont.cuba.web.gui.components.WebFieldGroup.applyFieldDefaults(WebFieldGroup.java:346)
at com.haulmont.cuba.web.gui.components.WebFieldGroup.bindDeclarativeFieldConfigs(WebFieldGroup.java:531)
at com.haulmont.cuba.web.gui.components.WebFieldGroup.bind(WebFieldGroup.java:504)
at com.haulmont.cuba.gui.xml.layout.loaders.FieldGroupLoader.loadComponent(FieldGroupLoader.java:175)
at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponents(ContainerLoader.java:38)
at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponentsAndExpand(ContainerLoader.java:90)
at com.haulmont.cuba.gui.xml.layout.loaders.AbstractBoxLoader.loadComponent(AbstractBoxLoader.java:52)
at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponents(ContainerLoader.java:38)
at com.haulmont.cuba.gui.xml.layout.loaders.ScrollBoxLayoutLoader.loadComponent(ScrollBoxLayoutLoader.java:80)
at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponents(ContainerLoader.java:38)
at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponentsAndExpand(ContainerLoader.java:90)
at com.haulmont.cuba.gui.xml.layout.loaders.WindowLoader.loadComponent(WindowLoader.java:101)
at com.haulmont.cuba.web.sys.WebScreens.loadScreenXml(WebScreens.java:254)
at com.haulmont.cuba.web.sys.WebScreens.createScreen(WebScreens.java:201)
at com.haulmont.cuba.web.sys.WebScreens.create(WebScreens.java:154)
at com.haulmont.cuba.web.sys.WebScreens.openEditor(WebScreens.java:623)
at com.haulmont.cuba.gui.screen.compatibility.LegacyFrame.openEditor(LegacyFrame.java:176)
at com.haulmont.cuba.gui.components.actions.CreateAction.internalOpenEditor(CreateAction.java:297)
at com.haulmont.cuba.gui.components.actions.CreateAction.actionPerform(CreateAction.java:257)
at com.haulmont.cuba.web.gui.components.WebButton.buttonClicked(WebButton.java:60)
at com.haulmont.cuba.web.widgets.CubaButton.fireClick(CubaButton.java:76)
at com.vaadin.ui.Button$1.click(Button.java:57)
For QA: check the https://app.zenhub.com/workspace/o/cuba-platform/cuba-gradle-plugin/issues/71
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.