Details

    • Type: Bug Fix Bug Fix
    • Status: Open Open
    • Priority: Critical Critical
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 2.6
    • Component/s: Development
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • Similar issues:
      KULRICE-12596Simplify Client Spring Bean configuration
      KULRICE-5117Clean up current issues with configurers in Rice
      KULRICE-2294Combine Rice Spring Contexts into a single Spring context
      KULRICE-2516Updates to support KFS Spring context merge
      KULRICE-1261slow performance related to spring configuration
      KULRICE-180Revisit Spring configuration and service locators
      KULRICE-14144Re-upgrade Rice to Spring 4
      KULRICE-3211Upgrade to Spring 3.0.1
      KULRICE-6306Upgrade Spring version to 3.1.0.RELEASE
      KULRICE-11635Analyze upgrade to Spring 4.x
    • Application Requirement:
      KC
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      We have a integration test to root out spring configuration issues. This integration test has identified several issues inside of rice. The following comments is a summary of the issues.

      1) kualiMaintainable maintainable is broken. Since it is a prototype scoped bean these issues don't come up unless you request the bean out of the spring context.
      org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kualiMaintainable' defined in class path resource [org/kuali/rice/kns/config/KNSSpringBeans.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'persistenceStructureService' of bean class [org.kuali.rice.kns.maintenance.KualiMaintainableImpl]: Bean property 'persistenceStructureService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1423)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1128)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:314)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
      at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
      at org.kuali.coeus.sys.impl.service.SpringBeanConfigurationTest$PrototypeVerification.r(SpringBeanConfigurationTest.java:105)
      at org.kuali.coeus.sys.impl.service.SpringBeanConfigurationTest.toEachSpringBean(SpringBeanConfigurationTest.java:77)
      at org.kuali.coeus.sys.impl.service.SpringBeanConfigurationTest.test_lookup_helper_service_are_prototype_scope(SpringBeanConfigurationTest.java:127)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      at org.kuali.kra.test.infrastructure.KcIntegrationTestRunner.run(KcIntegrationTestRunner.java:65)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
      at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
      Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'persistenceStructureService' of bean class [org.kuali.rice.kns.maintenance.KualiMaintainableImpl]: Bean property 'persistenceStructureService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
      at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1042)
      at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:905)
      at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
      at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1420)
      ... 40 more

      2) Rice is defining a bean with the same name in different spring contexts. This is problematic because if you request this bean using the GRL, there is no guarantee as to which one you will get. Rice should use unique bean names to avoid this issue.
      messageService=[class org.kuali.rice.kcb.service.impl.MessageServiceImpl, class org.kuali.rice.krad.messages.MessageServiceImpl]
      One message service is defined in KENLocalSpringBeans.xml and the other message service is defined in KRADTestHarnessSpringBeans.xml and KRADSpringBeans.xml

      3) lookupableHelperService is defined as prototype scope in KNSSpringBeans.xml but NOT defined as prototype scope in KimWebSpringBeans.xml

        Activity

        There are no comments yet on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Travis Schneeberger
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Structure Helper Panel