Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-3658

Extension attributes on new objects are deleted by workflow processing

    Details

    • Type: Bug Fix Bug Fix
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.1
    • Fix Version/s: 1.0.3
    • Component/s: Development
    • Labels:
      None
    • Similar issues:
      KULRICE-11414Extension framework does not work with objects using sequences for primary key
      KULRICE-4442Person service does not handle extension objects properly
      KULRICE-889New workflow API
      KULRICE-9119Review design for extension framework in new data layer
      KULRICE-5157Update Group objects to use new Attributes class instead of AttributeSet
      KULRICE-11602Create extension points to override ExpressionEvaluator
      KULRICE-9529Document how to use the new extension framework
      KULRICE-4012Research possibilities for BO Extensions
      KULRICE-1342Create a new type of attribute to replace WorkflowAttribute, make a SOAP remoted version of this service
      KULRICE-7588Implement maintenance Delete action
    • Rice Module:
      KNS
    • Application Requirement:
      KFS, Rice

      Description

      I found that the extension object is being cleared by a call to refreshReferenceObject on an unsaved object in workflow if a property on the extension object is used as a workflow attribute (via the QualifierResolver.)

      I fixed it locally for UCD by changing the refresh reference object method to the following, making it skip the refresh of the extension if requested. The problem was that the parent object had not been persisted yet, so the attempt to retrieve the reference caused it to become null.

      public void refreshReferenceObject(String referenceObjectName) {
      if ( !StringUtils.equals(referenceObjectName, "extension") )

      { KNSServiceLocator.getPersistenceService().retrieveReferenceObject(this, referenceObjectName); }

      }

        Issue Links

          Activity

          Hide
          Jonathan Keller added a comment -

          As part of this I'm going to fix the other problem here where it will blow up if the method is called with a property name which is not wired up in OJB/JPA. This happens when you start using DD relationships for attributes used by workflow. (Which dynamically calls this method.)

          Show
          Jonathan Keller added a comment - As part of this I'm going to fix the other problem here where it will blow up if the method is called with a property name which is not wired up in OJB/JPA. This happens when you start using DD relationships for attributes used by workflow. (Which dynamically calls this method.)
          Hide
          Travis Schneeberger added a comment - - edited

          This change caused issues when refreshing null collections. It used to be that a null collection would be initialized to a ManagedArrayList by ojb. Now this is not happening. I'm looking into the issue.

          Show
          Travis Schneeberger added a comment - - edited This change caused issues when refreshing null collections. It used to be that a null collection would be initialized to a ManagedArrayList by ojb. Now this is not happening. I'm looking into the issue.
          Hide
          Travis Schneeberger added a comment -

          I fixed the problem. closing issue.

          Show
          Travis Schneeberger added a comment - I fixed the problem. closing issue.
          Hide
          Jonathan Keller added a comment -

          Huh. Now I'm a little worried about our implementation. We've been running with that fix in our environments for months. Sorry about that.

          Show
          Jonathan Keller added a comment - Huh. Now I'm a little worried about our implementation. We've been running with that fix in our environments for months. Sorry about that.

            People

            • Assignee:
              Jonathan Keller
              Reporter:
              Jonathan Keller
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 3 hours
                3h
                Remaining:
                Remaining Estimate - 3 hours
                3h
                Logged:
                Time Spent - Not Specified
                Not Specified

                  Structure Helper Panel