BPEL API LOOKUPUSER() Fails When LDIF Has Two Description Fields

(Doc ID 889256.1)

Last updated on NOVEMBER 03, 2016

Applies to:

Oracle(R) BPEL Process Manager - Version: 10.1.3.3.1 to 10.1.3.4 - Release: AS10gR3
Information in this document applies to any platform.

Symptoms

On a BPEL system integrated with OID or another LDAP Server - use the API test page at:

http://<bpel server host>:<port>/integration/services/IdentityService/identity

And choose the function lookupUser(), enter the user name and realm and execute, this returns the user information correctly if the user's LDIF has only one description field, but if there is more than one then the query fails with an exception, there is a limit on the description array in the API that will error if there is more than one description.

This is an example LDIF file with more than one description field:

dn: cn=acooper,cn=users, dc=U.S. Test1,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: orclUser
objectClass: orclUserV2
cn: jcooper
uid: jcooper
sn: Cooper
givenName: Adam
userPassword: welcome1
displayName: Cooper, Adam
description: Demo user
description: Demo user2
manager: cn=jstein,cn=users, dc=U.S. Test1,dc=com
mail: user1@example.com
preferredLanguage: en-US
title: Loan Agent 1
orclTimeZone: America/Los_Angeles
orclWorkflowNotificationPref: Mail


Error from the test page response:

<env:Envelope
  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ns0="http://xmlns.oracle.com/bpel/services/IdentityService">
 <env:Body>
  <env:Fault
    xsi:type="env:Fault">
   <faultcode>env:Server</faultcode>
   <faultstring
     xsi:nil="1"/>
   <detail>
    <ns0:identityServiceError>
     <ns0:faultInfo>java.util.ArrayList</ns0:faultInfo>
    </ns0:identityServiceError>
   </detail>
  </env:Fault>
 </env:Body>
</env:Envelope>


Error in the BPEL logfile, either $OH/bpel/domains/<domain name>/logs/domain.xml or $ORACLE_HOME/opmn/logs/<bpel container>.log:

<2009-06-02 13:45:51,015> <INFO> <collaxa> <ServerManager::loadProcesses>
Done loading processes for all domains
09/06/02 15:18:22 java.lang.ClassCastException: java.util.ArrayList
09/06/02 15:18:22 at
oracle.tip.pc.services.identity.jazn.BPMPrincipalImpl.getDescription(BPMPrincipalImpl.java:226)
09/06/02 15:18:22 at
oracle.tip.pc.services.identity.common.SchemaUtil.userObject2XML(SchemaUtil.java:216)
09/06/02 15:18:22 at
oracle.tip.pc.services.identity.common.SchemaUtil.userObject2XML(SchemaUtil.java:196)
09/06/02 15:18:22 at
oracle.bpel.services.identity.wsif.IdentityServiceWSIF.lookupUser(IdentityServiceWSIF.java:124)
09/06/02 15:18:22 at
oracle.bpel.services.identity.soap.IdentityServiceSOAP.lookupUser(IdentityServiceSOAP.java:61)
09/06/02 15:18:22 at
oracle.bpel.services.identity.soap.runtime.IdentityServiceSOAPBinding_Tie.invoke_lookupUser(IdentityServiceSOAPBinding_Tie.java:999)
09/06/02 15:18:22 at
oracle.bpel.services.identity.soap.runtime.IdentityServiceSOAPBinding_Tie.processingHook(IdentityServiceSOAPBinding_Tie.java:1830)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.StreamingHandler.handle(StreamingHandler.java:297)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.JAXRPCProcessor.doEndpointProcessing(JAXRPCProcessor.java:413)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.JAXRPCProcessor.doRequestProcessing(JAXRPCProcessor.java:277)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.JAXRPCProcessor.doService(JAXRPCProcessor.java:134)
09/06/02 15:18:22 at
oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:194)
09/06/02 15:18:22 at
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
09/06/02 15:18:22 at
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
09/06/02 15:18:22 at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
09/06/02 15:18:22 at
oracle.security.jazn.oc4j.JAZNFilter$1.run(JAZNFilter.java:400)
09/06/02 15:18:22 at java.security.AccessController.doPrivileged(Native
Method)
09/06/02 15:18:22 at
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
09/06/02 15:18:22 at
oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:414)
09/06/02 15:18:22 at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDis


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