Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-225

dbVersion does not work with lazy loaded attributes

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.4.1
    • 1.4.2
    • API
    • None

    Description

      (email thread)

      The hooks is attached. And this is the output when both groupPreUpdate and groupPostUpdate are active and when I change the group extension:

      Creation of an hooks of class: ESCOGroupHooks.
      groupPreUpdate call isExtensionUpdate
      isExtensionUpdate (1) => [attribute__Définition, modifyTime, name, displayName, extension, displayExtension, description]
      isExtensionUpdate (2) => [modifyTime, name, extension]
      isExtensionUpdate

      Creation of an hooks of class: ESCOGroupHooks.
      Current extension: Dyn_Eleve_MODIFIED
      Previous extension: Dyn_Eleve

      And this is the output I obtain when the method groupPreUpdate is commented:

      Creation of an hooks of class: ESCOGroupHooks.
      Current extension: Dyn_Eleve_MODIFIED
      Previous extension: Dyn_Eleve_MODIFIED

      Thanks,
      Arnaud.

      Chris Hyzer a écrit :
      Can you send me the hooks you are trying to use, and show me which line does not do the expected behavior?

      Thanks,
      Chris

      From: Arnaud Deman
      Sent: Friday, February 13, 2009 8:35 AM
      Cc: Grouper Dev
      Subject: Re: [grouper-dev] dbVersionDifferentFields and getAttributeOrNull interraction

      Hi,

      I still have the same kind of problem, even with the transactional support activated.

      For instance, in the groupPreUpdate method and it looks like if the set returned by dbVersionDifferentFields was correct only after the first call of getAttributeOrNull.

      The second point is that it changes the behaviour of the groupPostUpdate method. If there is a call of getAttributeOrNull in groupPreUpdate method, I can retrieve the previous values of the group in groupPostUpdate via dbVersion. If the method is commented I cannot: there is no difference between the previous and the current values of the group.

      I don't know if another configuration error could be the cause of this behaviour...

      Regards,
      Arnaud.

      Chris Hyzer a écrit :
      I answer to myself,

      I have made a mistake with the mysql db (MyISAM instead of InnoDB) :-[
      .
      I think this could explain my problems !

      That is weird... and I am very glad you figured it out!

      Chris

      Thanks,
      Arnaud.

      Arnaud Deman a écrit :

      Hi everyone,

      Is it normal that call of the method dbVersion change the result of
      the method dbVersionDifferentFields ?

      For instance the code :

      final String currentExtension =
      group.getAttributeOrNull(EXTENSION);
      LOGGER.debug(" (1) ==> " + group.dbVersionDifferentFields());

      final Group previousValues = group.dbVersion();
      LOGGER.debug(" (2) ==> " + group.dbVersionDifferentFields());

      final String previousExtension =
      previousValues.getAttributeOrNull(EXTENSION);
      LOGGER.debug(" (3) ==> " + group.dbVersionDifferentFields());

      Produces the output:

      (1) ==> [attribute__Définition, modifyTime, name, displayName,
      extension, displayExtension, description]
      (2) ==> [attribute__Définition, modifyTime, name, displayName,
      extension, displayExtension, description]
      (3) ==> [modifyTime]

      I am trying to use the dbVersionDifferentField to determine when my
      hooks should be executed and I have several tests but the first one
      changes the results of the other tests. I think I could work with a
      clone of the set returned by dbVersionDifferentFields but I would

      like

      to understand.

      I have also noticed that a single change in a group (via the
      grouper-UI) can trigger several time the same method in a GroupHooks
      class. One time with the attributes and one time with only the
      modifyTime attribute.

      Thanks,
      Arnaud.

      Attachments

        Activity

          People

            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Smart Checklist