[ 
https://issues.apache.org/jira/browse/ISIS-1620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1620:
------------------------------
    Fix Version/s:     (was: 2.4.0)
                   1.20.0

> use normal mechanism of indicating metamodel invalid if choices specified 
> incorrectly
> -------------------------------------------------------------------------------------
>
>                 Key: ISIS-1620
>                 URL: https://issues.apache.org/jira/browse/ISIS-1620
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.14.0
>            Reporter: Dan Haywood
>            Priority: Trivial
>             Fix For: 1.20.0
>
>
> currently the framework just fails "too fast" and throws an exception as soon 
> as the issue is detected.  instead it should collate the problem and report 
> along with others (as for other metamodel invalid exceptions).
> To reproduce in kitchensink app:
> {code}
>     @Action(semantics=SemanticsOf.IDEMPOTENT, publishing = Publishing.ENABLED)
>     public TextObject updateSomeStringOptionalWithMultiChoices(
>             // @Nullable
>             @ParameterLayout(named = "Choose some string(s)")
>             final List<String> strings) {
>         final String asStr = SeparatorUtil.asStr(strings);
>         setSomeStringOptionalWithMultiChoices(asStr);
>         return this;
>     }
>     public List<String> choices0UpdateSomeStringOptionalWithMultiChoices() {
>         return choicesUpdateSomeStringOptionalWithMultiChoices();
>     }
>     public List<String> choicesUpdateSomeStringOptionalWithMultiChoices() {
>         return Lists.newArrayList("a", "ab", "abcd", "abcdefgh", 
> "abcdefghijklmnop", "abcdefghijklmnopqrstuvwxyz");
>     }
> {code}
> will throw an exception when encountered
> {code}
>       at org.apache.wicket.Application.initApplication(Application.java:953)
>       at 
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:429)
>       ... 20 more
> Caused by: org.apache.isis.core.metamodel.exceptions.MetaModelException: 
> class org.isisaddons.app.kitchensink.dom.text.TextObject uses both old and 
> new choices syntax - must use one or other
>       at 
> org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethodFactory.attachChoicesFacetForParametersIfChoicesNumMethodIsFound(ActionParameterChoicesFacetViaMethodFactory.java:92)
>       at 
> org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethodFactory.process(ActionParameterChoicesFacetViaMethodFactory.java:65)
>       at 
> org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor.process(FacetProcessor.java:315)
>       at 
> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.createActionFacetedMethod(FacetedMethodsBuilder.java:489)
>       at 
> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethod(FacetedMethodsBuilder.java:475)
>       at 
> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:454)
>       at 
> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.findActionFacetedMethods(FacetedMethodsBuilder.java:433)
>       at 
> org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder.getActionFacetedMethods(FacetedMethodsBuilder.java:409)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to