java.lang.IllegalStateException: the keyLabels or groups must be set to a non-empty collection

Kuali JIRA | Andrew Lubbers | 4 years ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    Editing a role that has a Kim attribute defined for it may have an AttributeDefinition bean defined in ks-lum/ks-lum-rice/src/main/resources/org/kuali/rice/student/bo/KualiStudentKimAttributes.xml The attribute beans there are defined to have a "control" property, which creates a KRAD control which is added as an additional column to the Role Member search when editing a role. You can see this working if you compare the fields that show up in the "Add Member:" area when editing these two roles: Senate Committee Reviewer (no additional fields) Organization Role (two additional fields) The controls for some of these Kim attributes are dropdowns that have their values filled in by KeyValue classes, such as this one for the "department" attribute: {quote} <property name="control" > <bean parent="SelectControlDefinition" p:valuesFinderClass="org.kuali.rice.student.lookup.keyvalues.DepartmentCocValuesFinder" /> </property> {quote} The DepartmentCocValuesFinder is attempting to search for Orgs using a search type of "org.search.orgQuickViewByRelationTypeOrgTypeRelatedOrgType", which is defined in the deprecated SearchManager framework, and is configured in this file: ks-core/ks-core-impl/src/main/resources/organization-search-config.xml This search is looking for org-org relations with (among other things) an org-org relation type of 'kuali.org.CurriculumParent', which has not existed in the KSOR_ORG_ORG_RELTN_TYPE table since before the UMD baseline data was introduced in 01/16/2013. This results in no matching records being returned for this search, which makes the dropdown box empty, and the exception being thrown by editing the role is saying it must have at least one value in the dropdown: java.lang.IllegalStateException: the keyLabels or groups must be set to a non-empty collection at org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:206) at org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:123) at org.kuali.rice.core.api.uif.RemotableAttributeField.(RemotableAttributeField.java:211) at org.kuali.rice.core.api.uif.RemotableAttributeField.(RemotableAttributeField.java:65) at org.kuali.rice.core.api.uif.RemotableAttributeField$Builder.build(RemotableAttributeField.java:627) at org.kuali.rice.kim.api.type.KimAttributeField.(KimAttributeField.java:69) at org.kuali.rice.kim.api.type.KimAttributeField.(KimAttributeField.java:42) at org.kuali.rice.kim.api.type.KimAttributeField$Builder.build(KimAttributeField.java:146)

    Kuali JIRA | 4 years ago | Andrew Lubbers
    java.lang.IllegalStateException: the keyLabels or groups must be set to a non-empty collection
  2. 0

    Editing a role that has a Kim attribute defined for it may have an AttributeDefinition bean defined in ks-lum/ks-lum-rice/src/main/resources/org/kuali/rice/student/bo/KualiStudentKimAttributes.xml The attribute beans there are defined to have a "control" property, which creates a KRAD control which is added as an additional column to the Role Member search when editing a role. You can see this working if you compare the fields that show up in the "Add Member:" area when editing these two roles: Senate Committee Reviewer (no additional fields) Organization Role (two additional fields) The controls for some of these Kim attributes are dropdowns that have their values filled in by KeyValue classes, such as this one for the "department" attribute: {quote} <property name="control" > <bean parent="SelectControlDefinition" p:valuesFinderClass="org.kuali.rice.student.lookup.keyvalues.DepartmentCocValuesFinder" /> </property> {quote} The DepartmentCocValuesFinder is attempting to search for Orgs using a search type of "org.search.orgQuickViewByRelationTypeOrgTypeRelatedOrgType", which is defined in the deprecated SearchManager framework, and is configured in this file: ks-core/ks-core-impl/src/main/resources/organization-search-config.xml This search is looking for org-org relations with (among other things) an org-org relation type of 'kuali.org.CurriculumParent', which has not existed in the KSOR_ORG_ORG_RELTN_TYPE table since before the UMD baseline data was introduced in 01/16/2013. This results in no matching records being returned for this search, which makes the dropdown box empty, and the exception being thrown by editing the role is saying it must have at least one value in the dropdown: java.lang.IllegalStateException: the keyLabels or groups must be set to a non-empty collection at org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:206) at org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:123) at org.kuali.rice.core.api.uif.RemotableAttributeField.(RemotableAttributeField.java:211) at org.kuali.rice.core.api.uif.RemotableAttributeField.(RemotableAttributeField.java:65) at org.kuali.rice.core.api.uif.RemotableAttributeField$Builder.build(RemotableAttributeField.java:627) at org.kuali.rice.kim.api.type.KimAttributeField.(KimAttributeField.java:69) at org.kuali.rice.kim.api.type.KimAttributeField.(KimAttributeField.java:42) at org.kuali.rice.kim.api.type.KimAttributeField$Builder.build(KimAttributeField.java:146)

    Kuali JIRA | 4 years ago | Andrew Lubbers
    java.lang.IllegalStateException: the keyLabels or groups must be set to a non-empty collection

    Root Cause Analysis

    1. java.lang.IllegalStateException

      the keyLabels or groups must be set to a non-empty collection

      at org.kuali.rice.core.api.uif.RemotableSelect$Builder.build()
    2. org.kuali.rice
      KimAttributeField$Builder.build
      1. org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:206)
      2. org.kuali.rice.core.api.uif.RemotableSelect$Builder.build(RemotableSelect.java:123)
      3. org.kuali.rice.core.api.uif.RemotableAttributeField.<init>(RemotableAttributeField.java:211)
      4. org.kuali.rice.core.api.uif.RemotableAttributeField.<init>(RemotableAttributeField.java:65)
      5. org.kuali.rice.core.api.uif.RemotableAttributeField$Builder.build(RemotableAttributeField.java:627)
      6. org.kuali.rice.kim.api.type.KimAttributeField.<init>(KimAttributeField.java:69)
      7. org.kuali.rice.kim.api.type.KimAttributeField.<init>(KimAttributeField.java:42)
      8. org.kuali.rice.kim.api.type.KimAttributeField$Builder.build(KimAttributeField.java:146)
      8 frames