The actions creates a new company with the users company as the parent 
(reseller). There's a nested set JDO implementation for managing a company 
tree. The nested set is updated by the mentioned parent.addChild(childNode).

I'm new to JDO. Try to execute a bulk update by modifying selected entities 
during an transaction.

        List<CompanyNode> rightNodes = (List<CompanyNode>)qLeft.executeList();
        // actual update
        nsm.getPersistenceManager().currentTransaction().begin();
        for (CompanyNode node : rightNodes) {
           int newRight = node.getRightValue()+delta;
                        node.setRightValue(newRight);
                }        
        nsm.getPersistenceManager().currentTransaction().commit();



// action
public AbstractCompany create(
            final @Named("Bedrijfsnaam") String name,
            final @Named("Is reseller") @Optional Boolean isReseller) {
        AbstractCompany obj;
        Company usersCompany = 
findCompanyRepresentedByUser(getUser().getName());

        if(isReseller != null && isReseller){
                obj = newTransientInstance(Company.class);
                obj.setName(name);
                obj.setReseller(true);          
        } else {
                obj = newTransientInstance(EndUser.class);
                ((EndUser)obj).setReseller(usersCompany);
                obj.setReseller(false);
                obj.setName(name);
        }
        // create nestedSetElement for the new company
        CompanyNode childNode = newTransientInstance(CompanyNode.class);
        childNode.setName(obj.getName());
        childNode.setCompany(obj);
        
        Node<CompanyNode> parent = 
getNestedSetManager().getNode(usersCompany.getCompanyNode());
        parent.addChild(childNode);
        // Necessary?
        obj.setCompanyNode(childNode);
        persistIfNotAlready(obj);
        persistIfNotAlready(parent);
        return obj;
    }
________________________________________
From: Dan Haywood [[email protected]]
Sent: Tuesday, April 01, 2014 3:11 PM
To: users
Subject: Re: Error returning from action

Doesn't look right, that's for sure.

Can you provide some more detail - what's in the action's implementation?

Thx
Dan



On 1 April 2014 14:09, Erik de Hair <[email protected]> wrote:

> Hello Isis users,
>
> I've got a problem popping up after returning from an action. Any one got
> a clue?
>
> Thanks,
> Erik
>
> Caused by: java.lang.IllegalStateException: illegal argument, expected: is
> <true>
> at
> org.apache.isis.core.commons.ensure.Ensure.ensureThatState(Ensure.java:93)
> at
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.ensureInHibernateTransaction(DataNucleusObjectStore.java:641)
> at
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.ensureInTransaction(DataNucleusObjectStore.java:627)
> at
> org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.execute(DataNucleusObjectStore.java:338)
> at
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.doFlush(IsisTransaction.java:388)
> at
> org.apache.isis.core.runtime.system.transaction.IsisTransaction.flush(IsisTransaction.java:337)
> at
> org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.flushTransaction(IsisTransactionManager.java:298)
> at
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionOnTargetAndProcessResults(ActionPanel.java:210)
> at
> org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel.executeActionAndProcessResults(ActionPanel.java:165)
> at
> org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersFormPanel$ActionParameterForm$1.onSubmit(ActionParametersFormPanel.java:160)
> at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1253)
> at org.apache.wicket.markup.html.form.Form.process(Form.java:925)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:771)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:704)
>

Reply via email to