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)
>