[
https://issues.apache.org/jira/browse/ISIS-1620?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Keir Haywood updated ISIS-1620:
--------------------------------------
Fix Version/s: 2.0.0-M5
Summary: [WON'T FIX] Metamodel exception if choices specified
incorrectly (was: [DUPLICATE?] validator if choices specified incorrectly)
> [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
> 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)