Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-11480

With Oracle repo, Create or Update Managed user via UI results in 500 error

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: OpenIDM 6.0.0
    • Fix Version/s: 6.5.0
    • Environment:
      OpenIDM 6.0
      Oracle repo (10.2, but tested on 11.2 with same result)
    • Target Version/s:
    • Verified Version/s:
    • Story Points:
      3
    • Sprint:
      OpenIDM Sprint 6.5-7
    • Support Ticket IDs:

      Description

      When creating or viewing a managed user via the UI, "Internal Server Error" is displayed. In the case of viewing, the user is not displayed for viewing.

      From Chrome developer tools, the following query can be seen failing:

       

      GET http://localhost:5050/openidm/managed/user/24a97c43-68da-465a-a9cb-d5edfbc07c8c?_fields=%2A,manager/_id,manager/userName,manager/givenName,manager/sn

       

       

      Note: Retrieval of user (via postman) without references works as expected.

      The IDM log displays the following error (when set to finest):

       

      FINEST: SQL: SELECT originobj.fullobject AS o_fullobject, originobj.objectid AS o_objectid, originobj.rev AS o_rev, first.firstpropertyname AS f_propname, first.fullobject AS f_fullobject, first.secondresourceid AS f_vertexid, first.secondresourcecollection AS f_vertexcollection, second.secondpropertyname AS s_propname, second.fullobject AS s_fullobject, second.firstresourceid AS s_vertexid, second.firstresourcecollection AS s_vertexcollection, vertex_first.fullobject AS vf_fullobject, vertex_second.fullobject AS vs_fullobject, vertex_first.objectid AS vf_objectid, vertex_second.objectid AS vs_objectid, vertex_first.rev AS vf_rev, vertex_second.rev AS vs_rev FROM ( SELECT obj.objectid , obj.rev, obj.fullobject FROM IDM.objecttypes objtype, IDM.managedobjects obj WHERE obj.objecttypes_id = objtype.id AND objtype.objecttype = 'managed/user' AND obj.objectid = 'bill' AND ROWNUM=1 ) originobj LEFT OUTER JOIN IDM.relationships first ON (first.firstresourceid=originobj.objectid AND first.firstresourcecollection= 'managed/user' AND first.firstpropertyname= 'manager' AND first.secondresourcecollection= 'managed/user') LEFT OUTER JOIN IDM.managedobjects vertex_first ON (vertex_first.objectid = first.secondresourceid AND first.secondresourcecollection= 'managed/user' AND vertex_first.objecttypes_id = ( SELECT id FROM IDM.objecttypes WHERE objecttype = 'managed/user')) LEFT OUTER JOIN IDM.relationships second ON (second.secondresourceid=originobj.objectid AND second.secondresourcecollection= 'managed/user' AND second.secondpropertyname= 'manager' AND second.firstresourcecollection= 'managed/user') LEFT OUTER JOIN IDM.managedobjects vertex_second ON (vertex_second.objectid = second.firstresourceid AND second.firstresourcecollection= 'managed/user' AND vertex_second.objecttypes_id = ( SELECT id FROM IDM.objecttypes WHERE objecttype = 'managed/user'))
      Aug 09, 2018 10:30:16 AM org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler executeQueryStatement
      FINE: DB reported failure executing query.
      java.sql.SQLSyntaxErrorException: ORA-01799: a column may not be outer-joined to a subquery
      at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
       at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
       at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1017)
       at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:655)
       at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
       at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:566)
       at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
       at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:58)
       at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:776)
       at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:897)
       at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
       at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
       at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
       at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1502)
       at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
       at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
       at org.forgerock.openidm.repo.jdbc.impl.query.TracedPreparedStatement.executeQuery(TracedPreparedStatement.java:78)
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.executeQueryStatement(GraphTableHandler.java:457)
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.prepareAndExecuteQuery(GraphTableHandler.java:334)
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.read(GraphTableHandler.java:269)
       at org.forgerock.openidm.repo.jdbc.impl.JDBCRepoService.handleRead(JDBCRepoService.java:286)
       at org.forgerock.json.resource.Router.handleRead(Router.java:330)
       at org.forgerock.json.resource.FilterChain$Cursor.handleRead(FilterChain.java:105)
       at org.forgerock.json.resource.Filters$ConditionalFilter.filterRead(Filters.java:94)
       ....
      Aug 09, 2018 10:30:16 AM org.forgerock.openidm.repo.jdbc.impl.JDBCRepoService handleRead
      FINE: ResourceException in read of managed/user/bill
      org.forgerock.json.resource.InternalServerErrorException: DB reported failure executing query.
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.executeQueryStatement(GraphTableHandler.java:507)
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.prepareAndExecuteQuery(GraphTableHandler.java:334)
       at org.forgerock.openidm.repo.jdbc.impl.GraphTableHandler.read(GraphTableHandler.java:269)
       at org.forgerock.openidm.repo.jdbc.impl.JDBCRepoService.handleRead(JDBCRepoService.java:286)
       at org.forgerock.json.resource.Router.handleRead(Router.java:330)
      

       

      (log attached).

      which seems to relates to a statement generated by the VertexEdgeSQLBuilder (https://stash.forgerock.org/projects/OPENIDM/repos/openidm/browse/openidm-repo-jdbc/src/main/java/org/forgerock/openidm/repo/jdbc/impl/VertexEdgeSQLBuilder.java?at=refs%2Ftags%2F6.0.0)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jason Jason Lemay
                Reporter:
                bradley.tarisznyas Brad Tarisznyas
              • Votes:
                1 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: