You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Daniel Keir Haywood (Jira)" <ji...@apache.org> on 2021/01/17 19:00:00 UTC

[jira] [Closed] (ISIS-1620) [WON'T FIX] Metamodel exception if choices specified incorrectly

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

Daniel Keir Haywood closed ISIS-1620.
-------------------------------------

> [WON'T FIX] Metamodel exception if choices specified incorrectly
> ----------------------------------------------------------------
>
>                 Key: ISIS-1620
>                 URL: https://issues.apache.org/jira/browse/ISIS-1620
>             Project: Isis
>          Issue Type: Improvement
>          Components: Isis Applib (programming model)
>    Affects Versions: 1.14.0
>            Reporter: Daniel Keir Haywood
>            Assignee: Daniel Keir Haywood
>            Priority: Trivial
>             Fix For: 2.0.0-M5
>
>
> 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
(v8.3.4#803005)