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

Provisioner metadata with value type integer fails

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • 4.1.1
    • 2.6.18
    • provisioning
    • None

    Description

      targetRetrieveAllGroups: 1, exception: java.lang.RuntimeException: Cannot convert to int: com.fasterxml.jackson.databind.node.IntNode
      	at edu.internet2.middleware.grouper.util.GrouperUtil.intValue(GrouperUtil.java:7936)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectMetadataItemValueType$2.convert(GrouperProvisioningObjectMetadataItemValueType.java:47)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningGrouperDao.getTargetGroupMapFromQueryResults(GrouperProvisioningGrouperDao.java:744)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningGrouperDao.retrieveGroups(GrouperProvisioningGrouperDao.java:102)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningGrouperDao.retrieveGrouperDataFull(GrouperProvisioningGrouperDao.java:895)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.retrieveGrouperDataFull(GrouperProvisioningLogic.java:2353)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.retrieveAllData(GrouperProvisioningLogic.java:1764)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.provisionFull(GrouperProvisioningLogic.java:109)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningType$1.provision(GrouperProvisioningType.java:41)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogic.provision(GrouperProvisioningLogic.java:77)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioner.provision(GrouperProvisioner.java:797)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.runFullSync(GrouperProvisioningFullSyncJob.java:56)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob$1.callback(GrouperProvisioningFullSyncJob.java:30)
      	at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1000)
      	at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1069)
      	at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1036)
      	at edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob.run(GrouperProvisioningFullSyncJob.java:19)
      	at edu.internet2.middleware.grouper.app.loader.OtherJobBase$2.callback(OtherJobBase.java:439)
      	at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1000)
      	at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1069)
      	at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1036)
      	at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:392)
      	at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:376)
      	at edu.internet2.middleware.grouper.app.loader.GrouperDaemonJob.execute(GrouperDaemonJob.java:57)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      
      

      The GrouperUtil method isn't expecting an IntNode. The fix below would work and has been tested locally:

      --- a/grouper/src/grouper/edu/internet2/middleware/grouper/app/provisioning/GrouperProvisioningObjectMetadataItemValueType.java
      +++ b/grouper/src/grouper/edu/internet2/middleware/grouper/app/provisioning/GrouperProvisioningObjectMetadataItemValueType.java
      @@ -7,6 +7,7 @@ import java.util.Set;
       import com.fasterxml.jackson.databind.JsonNode;
       import com.fasterxml.jackson.databind.node.ArrayNode;
       import com.fasterxml.jackson.databind.node.BooleanNode;
      +import com.fasterxml.jackson.databind.node.IntNode;
       import com.fasterxml.jackson.databind.node.TextNode;
       
       import edu.internet2.middleware.grouper.util.GrouperUtil;
      @@ -44,6 +45,11 @@ public enum GrouperProvisioningObjectMetadataItemValueType {
             if (value == null || value instanceof Integer) {
               return value;
             }
      +
      +      if (value instanceof IntNode) {
      +        return ((IntNode) value).intValue();
      +      }
      +
             return GrouperUtil.intValue(value);
           }
      

      Attachments

        Activity

          People

            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            chad.redman.3@at.internet2.edu Chad Redman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: