ISIS-1477: add null checking in case there are no parameters in the DTO (as appears to be the case for 0-arg commands).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a8837d43 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a8837d43 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a8837d43 Branch: refs/heads/master Commit: a8837d433863b2d527016f0504e70b615a11c7fc Parents: 32e0161 Author: Dan Haywood <[email protected]> Authored: Tue Aug 23 22:04:39 2016 +0100 Committer: Dan Haywood <[email protected]> Committed: Tue Aug 23 22:04:39 2016 +0100 ---------------------------------------------------------------------- .../background/BackgroundCommandExecution.java | 22 +++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/a8837d43/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java index 2b3c8cb..6362647 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java @@ -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; @@ -51,6 +52,7 @@ import org.apache.isis.schema.cmd.v1.ActionDto; 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; @@ -107,13 +109,6 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp final IsisTransactionManager transactionManager, final Command backgroundCommand) { - - // - // TODO: need to generalize so that can invoke property modifications also. - // - - - transactionManager.executeWithinTransaction( backgroundCommand, new TransactionalClosure() { @@ -332,7 +327,7 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp } 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 @@ -345,6 +340,17 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp 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
