Repeating Group Views with Cardinality 1 - who else uses them? (F57118)

Idea created by JohnGymer on Mar 19, 2015
    Under review
    Score14

    Most people use Group Views for their repeating rows. However, it is possible to specify Cardinality 1, or alternatively a 'NON-Repeating' Group View (sometimes called a 'Singleton' Group View).  These are implemented as different things at generation/runtime - a Repeating Group View with Cardinality=1 gives array (or equivalent for the platform) with size/length 1, whereas Non-Repeating Group Views are implemented much like standard views without arrays.

    Gen's generators and runtime all understand this, and the developer is largely unaware of the subtle difference (you cannot code logic to manipulate SUBSCRIPT in a Non-Repeating Group View).

    However, when it comes to Java Proxies, while the generator behaves consistently with the above description (Repeating Group View with Cardinality 1 results in arrays of length 1), but the Java runtimes (in particular, the initViewData method) gets it wrong and initialises such views as if they are Non-Repeating i.e. normal views without arrays.  This causes the Java to give exception in the IA/OA logic when you call the code using the Java Proxy and thus you cannot use 'Repeating Group Views with Cardinality 1' in Java with Proxies.

    The Gen Consistency Check pulls this up as an error, but of course, not many of us actually use the Consistency Checks, and may well have models with Group Views like this, and have had for years - working perfectly in all other environments.

    It is not necessarily a simple job to change the Group View Definition to be Non-Repeating, as their may be much logic that deals with SUBSCRIPT, which would be invalid.

    So the question is... do other Gen sites uses Group Views like this (Repeating with Cardinality 1), and would the lack of runtime support in Gen's Java runtimes be an issue?  We know this is true for at least one site... but how widespread is it?  Does CA need to fix the Java runtime?

    Surely it would be a simple matter to have the runtime fixed?   Is it not a trivial change?