Skip to content

Commit

Permalink
ISIS-1477: add null checking in case there are no parameters in the D…
Browse files Browse the repository at this point in the history
…TO (as appears to be the case for 0-arg commands).
  • Loading branch information
danhaywood committed Aug 26, 2016
1 parent b8e6eb5 commit 37684f7
Showing 1 changed file with 14 additions and 8 deletions.
Expand Up @@ -16,6 +16,7 @@
*/
package org.apache.isis.core.runtime.services.background;

import java.util.Collections;
import java.util.List;

import com.google.common.base.Function;
Expand Down Expand Up @@ -51,6 +52,7 @@
import org.apache.isis.schema.cmd.v1.CommandDto;
import org.apache.isis.schema.cmd.v1.MemberDto;
import org.apache.isis.schema.cmd.v1.ParamDto;
import org.apache.isis.schema.cmd.v1.ParamsDto;
import org.apache.isis.schema.cmd.v1.PropertyDto;
import org.apache.isis.schema.common.v1.InteractionType;
import org.apache.isis.schema.common.v1.OidDto;
Expand Down Expand Up @@ -107,13 +109,6 @@ private void execute(
final IsisTransactionManager transactionManager,
final Command backgroundCommand) {


//
// TODO: need to generalize so that can invoke property modifications also.
//



transactionManager.executeWithinTransaction(
backgroundCommand,
new TransactionalClosure() {
Expand Down Expand Up @@ -332,7 +327,7 @@ private ObjectAdapter argAdapterFor(final ActionInvocationMemento aim, int num)
}

private ObjectAdapter[] argAdaptersFor(final ActionDto actionDto) {
final List<ParamDto> params = actionDto.getParameters().getParameter();
final List<ParamDto> params = paramDtosFrom(actionDto);
final List<ObjectAdapter> args = Lists.newArrayList(
Iterables.transform(params, new Function<ParamDto, ObjectAdapter>() {
@Override
Expand All @@ -345,6 +340,17 @@ public ObjectAdapter apply(final ParamDto paramDto) {
return args.toArray(new ObjectAdapter[]{});
}

private static List<ParamDto> paramDtosFrom(final ActionDto actionDto) {
final ParamsDto parameters = actionDto.getParameters();
if (parameters != null) {
final List<ParamDto> parameterList = parameters.getParameter();
if (parameterList != null) {
return parameterList;
}
}
return Collections.emptyList();
}

// //////////////////////////////////////

@javax.inject.Inject
Expand Down

0 comments on commit 37684f7

Please sign in to comment.