[
https://issues.apache.org/jira/browse/ISIS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Haywood resolved ISIS-1401.
-------------------------------
Resolution: Won't Fix
> NPE when wrapping call to FixtureScripts#runFixtureScript for a newly
> instantiated FixtureScript
> -------------------------------------------------------------------------------------------------
>
> Key: ISIS-1401
> URL: https://issues.apache.org/jira/browse/ISIS-1401
> Project: Isis
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.12.1
> Reporter: Oscar Bou
> Assignee: Dan Haywood
> Fix For: 1.13.0
>
>
> The FixtureScripts#runFixtureScript action is marked as "Prototyping", and
> basically there's no need to invoke it wrapped, but perhaps is relevant for
> other use cases.
> When executing something like:
> this.wrap(this.fixtureScripts).runFixtureScript(
> new MyFixtureScript(), null);
> A NullPointerException is thrown, as for the execution on
> DomainObjectInvokationHandler#handleActionMethod requires to create an
> adapter for the contributee (line 590):
> [java]
> contributeeAdapter = adapterFor(contributed);
> [/java]
> As the MyFixtureScript is a ViewModel, this will be delegated to
> FixtureScript#viewModelMemento() which in fact will contain:
> [java]
> @Programmatic
> @Override
> public String viewModelMemento() {
> return fixtureScripts.mementoFor(this);
> }
> [/java]
> Being "fixtureScripts" null.
> Not sure how to solve this, as basically the FixtureScript requires to be
> injected before executing it.
> As perhaps this will be the only method that can potentially been invoked
> before the FixtureScript being wrapped on the "FixtureScripts" service, an
> easy solution would be to check if the "fixtureScript" variable is null and,
> in that case, inject its own instance on this same method.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)