OES11g - Unable Use STRING_IS_IN_BAG function in APM (Doc ID 2256768.1)

Last updated on MAY 22, 2017

Applies to:

Oracle Entitlements Server - Version 11.1.2.3.0 and later
Information in this document applies to any platform.

Symptoms

On : 11.1.2.3.0 version,

Unable to use STRING_IS_IN_BAG in APM

The issue can be reproduced at will with the following steps:

1. Unable to use STRING_IS_IN_BAG in an authorization policy. The signature for STRING_IS_IN_BAG (according to the info message in the condition builder) is:

STRING_IS_IN_BAG(OpssString, Bag of OpssString)

However, after select the function in the Condition builder, it switches the parameters, getting this:

  STRING_IS_IN_BAG([String, String +x], String)

2. In other words, the Bag is first, then the string.

3. When testing, if setting the first parameter as a string, and the second is a string bag, the function does not work properly (which is expected). Looking at the trace, the first parameter is being converted to a bag.

4. If I try the opposite, setting the first parameter to a string bag, and the second to a string, observing an error when attempting to save the policy:

[2017-02-28T11:36:36.576-05:00] [oes_server1] [WARNING] [] [oracle.adf.controller.faces.lifecycle.Utils] [tid: [ACTIVE].ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: F93P78AA] [ecid: 005IPbCfq0E5e_^pxS1FiW0007PN000CLL,0:2] [APP: oracle.security.apm#11.1.1.3.0] [DSID: 0000Le5^H9T6MQ^pxSl3iW1O6_Ot00001s] ADF: Adding the following JSF error message: JPS-20062: Value collection passed to input parameter when a single object is expected.[[
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.security.apm.common.model.exception.APMRuntimeException, msg=oracle.security.jps.service.policystore.info.common.InvalidArgumentException: JPS-20062: Value collection passed to input parameter when a single object is expected.
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:418)
at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:480)
at oracle.adf.model.binding.DCControlBinding.reportException(DCControlBinding.java:201)
..............................
Caused by: oracle.security.apm.common.model.exception.APMRuntimeException: oracle.security.jps.service.policystore.info.common.InvalidArgumentException: JPS-20062: Value collection passed to input parameter when a single object is expected.
at oracle.security.apm.oes.common.model.policy.PolicyDataProvider.update(PolicyDataProvider.java:255)
at oracle.security.apm.oes.common.model.policy.PolicyDataProvider.update(PolicyDataProvider.java:95)
at oracle.security.apm.oes.common.model.entity.OESCustomEO.doDML(OESCustomEO.java:73)
........................
Caused by: oracle.security.jps.service.policystore.info.common.InvalidArgumentException: JPS-20062: Value collection passed to input parameter when a single object is expected.
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:418)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:447)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:447)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.createPolicyRuleInTransaction(PolicyRuleManagerImpl.java:480)
.......................
## Detail 0 ##
oracle.security.apm.common.model.exception.APMRuntimeException: oracle.security.jps.service.policystore.info.common.InvalidArgumentException: JPS-20062: Value collection passed to input parameter when a single object is expected.
at oracle.security.apm.oes.common.model.policy.PolicyDataProvider.update(PolicyDataProvider.java:255)
at oracle.security.apm.oes.common.model.policy.PolicyDataProvider.update(PolicyDataProvider.java:95)
at oracle.security.apm.oes.common.model.entity.OESCustomEO.doDML(OESCustomEO.java:73)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:7251)
at oracle.security.apm.oes.common.model.entity.OESCustomEO.postChanges(OESCustomEO.java:52)
at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3359)
..............................
Caused by: oracle.security.jps.service.policystore.info.common.InvalidArgumentException: JPS-20062: Value collection passed to input parameter when a single object is expected.
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:418)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:447)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.validateCondition(PolicyRuleManagerImpl.java:447)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyRuleManagerImpl.createPolicyRuleInTransaction(PolicyRuleManagerImpl.java:480)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyManagerImpl.modifyPolicyRules(PolicyManagerImpl.java:3187)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyManagerImpl.modifyPolicyInTransaction(PolicyManagerImpl.java:1984)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyManagerImpl.modifyPolicy_common(PolicyManagerImpl.java:1896)
at oracle.security.jps.internal.policystore.entitymanager.impl.PolicyManagerImpl.modifyPolicy(PolicyManagerImpl.java:1871)
at oracle.security.jps.internal.policystore.entityauditmanager.InternalPolicyAuditManager.modifyPolicy(InternalPolicyAuditManager.java:270)
at oracle.security.apm.oes.common.model.policy.PolicyDataProvider.update(PolicyDataProvider.java:248)
... 88 more

]]

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms