Currently there are only two levels... foreground and background. On Tue, 10 Jan 2017, 10:33 Erik de Hair, <[email protected]> wrote:
> > On 01/06/2017 12:38 AM, Dan Haywood wrote: > > Hi Erik, > > > > Looks like an error in BackgroundCommandServiceJdo [1]. It's setting the > > child command's reference to the parent command, and then the latter gets > > persisted due to persistence-by-reachability. > > > > You can workaround this by creating your own version of > > BackgroundCommandService2, with @DomainService(menuOrder="50") say so > that > > it is picked up first. Copy the existing class and adjust. > > > > Ideally the implementatation needs to find out the ObjectAction > > corresponding to the parent Command, and check its CommandFacet. That > will > > mean reaching deep into the Apache Isis metamodel, I think ... I don't > > think there's any formal API for that I'm afraid. > > > > Or, you could go for the cheap-n-cheerful approach which is to check for > > the length of the targetStr of the parent Command, and set the child's > > parent ref to null if too long. You could use code similar to that in > > CommandServiceJdo to do this [2] > How many levels can a command tree have? If more than 2 it would have to > check this recursively... > > > > Meantime I've raised an issue on the module [3]. PRs happily received if > > you have the time to fix properly. > Thanks Dan, will see if/how I can fix this. > > > > Thx > > Dan > > > > > > [1] > > > https://github.com/isisaddons/isis-module-command/blob/master/dom/src/main/java/org/isisaddons/module/command/dom/BackgroundCommandServiceJdo.java#L117 > > [2] > > > https://github.com/isisaddons/isis-module-command/blob/master/dom/src/main/java/org/isisaddons/module/command/dom/CommandServiceJdo.java#L92 > > [3] https://github.com/isisaddons/isis-module-command/issues/14 > > > > > > On Wed, 4 Jan 2017 at 14:18 Erik de Hair <[email protected]> wrote: > > > >> On 01/04/2017 10:14 AM, Erik de Hair wrote: > >>> So now it seems an action in the registered domainEvent is persisted > >>> as a command and while debugging I can see the finish()-action is it's > >>> parent command. Will persisting the action from the domainEvent > >>> trigger persistence of it's parent also, eventhough it shouldn't be > >>> persisted? The targetStr-property of the finish()-command is not null. > >>> Could that be messing things up? > >>> > >> It ís messing things up. The subscriber for the WbaOrderFinishedEvent > >> starts another background-command. If I disable this call everything > >> works fine. This call really needs to be done in the background so how > >> can I make this work? > >> > >>> On 01/04/2017 09:32 AM, Erik de Hair wrote: > >>>> Hi, > >>>> > >>>> We have a view model with following action: > >>>> > >>>> @Action(domainEvent = WbaOrderFinishedEvent.class, publishing = > >>>> Publishing.DISABLED, commandPersistence = > >>>> CommandPersistence.NOT_PERSISTED) > >>>> @Override > >>>> public AbstractEndUserAccessSubscription finish(){ > >>>> .... > >>>> } > >>>> > >>>> The application is still trying to persist the action as a command > >>>> and it complains about the length of the target-column, while it > >>>> should be set to null for view models, isn't it? > >>>> > >>>> INSERT INTO Command > >>>> > >> > (arguments,completedAt,`exception`,executeIn,memberIdentifier,memento,parentTransactionId,`result`,startedAt,targetAction,targetClass,target,`timestamp`,`user`,transactionId) > >>>> VALUES (<''>,<2017-01-04 > >>>> 09:13:53.264>,<'javax.jdo.JDOFatalUserException: Attempt to store > >>>> value > >>>> > >> > "*nl.pocos.dom.access.kpn.wba.order.WbaFiberOrderForm:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8-PGN1c3RvbWVyLmJvb2ttYXJrPm5sLnBvY29zLmRvbS5jb21wYW55LlBvcnRhbENvbXBhbnk6aV8xMDM8L2N1c3RvbWVyLmJvb2ttYXJrPjxjb25uZWN0aW9uQXJ0aWNsZS5ib29rbWFyaz5ubC5wb2Nvcy5kb20uYXJ0aWNsZS5BYnN0cmFjdEFydGljbGU6aV8xMzgxPC9jb25uZWN0aW9uQXJ0aWNsZS5ib29rbWFyaz48Y3VzdG9tZXJSZWZlcmVuY2U-a2xhbnRyZWZlcmVudGllPC9jdXN0b21lclJlZmVyZW5jZT48dGVjaG5vbG9neUltcGw-RnR0SDwvdGVjaG5vbG9neUltcGw-PGFydGljbGVQQy5ib29rbWFyaz5ubC5wb2Nvcy5kb20uYXJ0aWNsZS5BYnN0cmFjdEFydGljbGU6aV8xMzgwPC9hcnRpY2xlUEMuYm9va21hcms-PGNsYXNzT2ZTZXJ2aWNlUEM-U3RhbmRhcmQ8L2NsYXNzT2ZTZXJ2aWNlUEM-PGNvbm5lY3Rpb25BZGRyZXNzLmJvb2ttYXJrPipubC5wb2Nvcy5hcHBsaWIuQWRkcmVzczpQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejRLUEcxbGJXVnVkRzgtUEdodmRYTmxUblZ0WW1WeVBqRTFNand2YUc5MWMyVk9kVzFpWlhJLVBISmxjMmxrWlc1alpUNUZTVTVFU0U5V1JVNDhMM0psYzJsa1pXNWpaVDQ4YzNSeVpXVjBQa2RGVEVSU1QxQlRSVmRIUEM5emRISmxaWFEtUEhwcGNFTnZaR1UtTlRZeE5FRkZQQzk2YVhCRGIyUmxQand2YldWdFpXNTBiejQ9PC9jb25uZWN0aW9uQWRkcmVzcy5ib29rbWFyaz48Y29ubmVjdGlvblBvaW50RGV0YWlscz5beyJjdXJyZW50T2RmQWNjZXNzU2VydmljZUlkIjoiUkVGMDAwMTk3OTEyNCIsImZ1dHVyZU9kZkFjY2Vzc1NlcnZpY2VJZCI6IiIsImNvbm5lY3Rpb25UeXBlcyI6eyIwIjoiTm90IGluIHVzZSIsIjEiOiJGaXhlZCBsaW5lIHNlcnZpY2UiLCIyIjoiVGVsZXBob255IHNlcnZpY2UiLCIzIjoiTURGIGJyb2FkYmFuZCBzZXJ2aWNlIiwiNCI6IlNERiBicm9hZGJhbmQgc2VydmljZSIsIjUiOiJPREYgYnJvYWRiYW5kIHNlcnZpY2UiLCI2IjoiT0RGIGJyb2FkYmFuZCBzZXJ2aWNlIGJsb2NrZWQiLCI3IjoiT0RGIGJyb2FkYmFuZCBzZXJ2aWNlIGRlZmVjdCIsIjgiOiJVbmtub3duIHNlcnZpY2UiLCI5IjoiTm8gY2hhbmdlIiwiMTAiOiJNREYgQnVuZGxlIiwiMTEiOiJTREYgQnVuZGxlIn0sImN1cnJlbnRUeXBlT2ZDb25uZWN0aW9uIjoiNSIsImZ1dHVyZVR5cGVPZkNvbm5lY3Rpb24iOiI5In1dPC9jb25uZWN0aW9uUG9pbnREZXRhaWxzPjxuYXQ-ZmFsc2U8L25hdD48cG9ydGZvbGlvPldfQURTTDwvcG9ydGZvbGlvPjxzdGF0ZT5TVU1NQVJZX1BBR0U8L3N0YXRlPjx0ZWNobm9sb2d5PkZ0dEg8L3RlY2hub2xvZ3k-PG1heE5sc1R5cGU-NjwvbWF4TmxzVHlwZT48d2lzaERhdGU-MjAxNy0wMS0yNTwvd2lzaERhdGU-PG9yZGVyU2NlbmFyaW8-TmV3X0xpbmU8L29yZGVyU2NlbmFyaW8-PHNlcnZpY2VMZXZlbD5CRVNUX0VGRk9SVDwvc2VydmljZUxldmVsPjxjb25uZWN0aW9uQWRkcmVzc0NvbnRhY3ROYW1lPlBpZXQgU25vdDwvY29ubmVjdGlvbkFkZHJlc3NDb250YWN0TmFtZT48Y29ubmVjdGlvbkFkZHJlc3NDb250YWN0UGhvbmU-KzMxNDAyMTM0NTc4PC9jb25uZWN0aW9uQWRkcmVzc0NvbnRhY3RQaG9uZT48Y29ubmVjdGlvbkFkZHJlc3NDb250YWN0UGhvbmVBZGRpdGlvbmFsPiszMTQwMjEzNDU3OTwvY29ubmVjdGlvbkFkZHJlc3NDb250YWN0UGhvbmVBZGRpdGlvbmFsPjxjb25uZWN0aW9uQWRkcmVzc0NvbnRhY3RFbWFpbD5wZXRAcG9jb3Mubmw8L2Nvbm5lY3Rpb25BZGRyZXNzQ29udGFjdEVtYWlsPjx1bnRhZ2dlZD50cnVlPC91bnRhZ2dlZD48dm9pY2VQcmlvcml0eVBDPnRydWU8L3ZvaWNlUHJpb3JpdHlQQz48dm9pY2VQcmlvcml0eUFDPmZhbHNlPC92b2ljZVByaW9yaXR5QUM-PGluc3RhbGxTZXJ2aWNlPmZhbHNlPC9pbnN0YWxsU2VydmljZT48Yml0cmF0ZURvd24-MTAwMDAwMC4wPC9iaXRyYXRlRG93bj48Yml0cmF0ZVVwPjEwMDAwMDAuMDwvYml0cmF0ZVVwPjxmdHVBdENvbm5lY3Rpb25BZGRyZXNzPkZUVV9UWTAxPC9mdHVBdENvbm5lY3Rpb25BZGRyZXNzPjwvbWVtZW50bz4=" > >>>> in column "target" that has maximum length of 2000. Please correct > >>>> your data! > >>>> > >>>> How to fix this? > >>>> > >>>> Thanks, > >>>> Erik > >>>> > >>> > >> > >> > > >
