Changing the Security Access Level in a Portal while the Portal has Documents in Workflow Generates Errors in the Logs : Unable to Update Content Item in State EDIT (Doc ID 1902045.1)

Last updated on JUNE 30, 2017

Applies to:

Oracle WebCenter Portal - Version 11.1.1.8.0 to 11.1.1.8.3 [Release 11g]
Information in this document applies to any platform.

Symptoms

 

Attempting to change a Portal Access Level while the Portal has documents in a workflow will cause the Portal to be in an inconsistent state.

For example, changing the Portal's access level from "Private" to "Public" will cause the Portal to be in an inconsistent state with some services already transitioned to Public while some others still remaining in Private.

There is an error message in the Spaces logs, but the administrators are not necessarily aware that something went wrong with their last action since no error is displayed in the UI.

 

The WC_Spaces-diagnostic.log shows the following errors:

[2014-07-09T13:27:59.080+00:00] [WC_Spaces] [ERROR] [WCS-07868] [oracle.webcenter.doclib.internal.spaces.UCMRoleMappingLogic] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: testuser1] [ecid: e6e0bebd37e40017:54f45fab:1471b300e1f:-8000-000000000000028d,0] [APP: webcenter#11.1.1.4.0] [DSID: 0000KSRHi8KEGR2_vpw0yX1JjJhh000003] Cannot propagate account for the portal folder DocumentExchange1 to its contents.[[
oracle.stellent.ridc.protocol.ServiceException: Unable to update the content item information for 'FMW11GVMORACLE000264'. Unable to update content item in state EDIT.
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:142)
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
...

[2014-07-09T13:27:59.087+00:00] [WC_Spaces] [ERROR] [WCS-44002] [oracle.webcenter.security.rolemapping.RoleManager] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: testuser1] [ecid: e6e0bebd37e40017:54f45fab:1471b300e1f:-8000-000000000000028d,0] [APP: webcenter#11.1.1.4.0] [DSID: 0000KSRHi8KEGR2_vpw0yX1JjJhh000003] The Role Mapping provider encountered an exception while performing security role mapping for service oracle.webcenter.doclib.[[
oracle.webcenter.security.rolemapping.spi.RoleMappingSPIException: Cannot propagate account for the portal folder DocumentExchange1 to its contents.
        at oracle.webcenter.doclib.internal.spaces.UCMRoleMappingLogic.wrappedException(UCMRoleMappingLogic.java:1040)
        at oracle.webcenter.doclib.internal.spaces.UCMRoleMappingLogic.propagateAccounts(UCMRoleMappingLogic.java:736)
...

Caused by: oracle.stellent.ridc.protocol.ServiceException: Unable to update the content item information for 'FMW11GVMORACLE000264'. Unable to update content item in state EDIT.
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:142)
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
...

[2014-07-09T13:27:59.111+00:00] [WC_Spaces] [WARNING] [] [oracle.webcenter.portalbuilder.view.PortalSecurityBean] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: testuser1] [ecid: e6e0bebd37e40017:54f45fab:1471b300e1f:-8000-000000000000028d,0] [APP: webcenter#11.1.1.4.0] [DSID: 0000KSRHi8KEGR2_vpw0yX1JjJhh000003] [[
oracle.webcenter.webcenterapp.security.WCSecurityException: Error occurred while granting permission to portal DocumentExchange1 for the provisioned service(s).
        at oracle.webcenter.spaces.internal.model.security.SpacesSecurityManagerImpl.setPublic(SpacesSecurityManagerImpl.java:2564)
        at oracle.webcenter.portalbuilder.view.PortalSecurityBean.saveChanges(PortalSecurityBean.java:235)
...

Caused by: oracle.webcenter.security.rolemapping.RoleMappingException: The Role Mapping provider encountered an exception while performing security role mapping for service oracle.webcenter.doclib.
        at oracle.webcenter.security.rolemapping.RoleManager.postProcessRoleMappingOperations(RoleManager.java:215)
        at oracle.webcenter.spaces.internal.model.security.SpacesSecurityManagerImpl.setPublic(SpacesSecurityManagerImpl.java:2546)
...

Caused by: oracle.webcenter.security.rolemapping.spi.RoleMappingSPIException: Cannot propagate account for the portal folder DocumentExchange1 to its contents.
        at oracle.webcenter.doclib.internal.spaces.UCMRoleMappingLogic.wrappedException(UCMRoleMappingLogic.java:1040)
        at oracle.webcenter.doclib.internal.spaces.UCMRoleMappingLogic.propagateAccounts(UCMRoleMappingLogic.java:736)
...

Caused by: oracle.stellent.ridc.protocol.ServiceException: Unable to update the content item information for 'FMW11GVMORACLE000264'. Unable to update content item in state EDIT.
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:142)
        at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
...

 

 

Changes

 The issue can be reproduced by following the steps below:

  1. Login to WebCenter Portal.
     
  2. Create a Private Portal using the Document Exchange template.
    e.g.: DocumentExchange1
     
  3. View the Portal created in Step-2.
     
  4. Add a member to the portal.
     
    • Select "Manage" > "Members" from Action icon (the small wheel).
       
    • Select Members.
       
    • Add a user as Moderator.
      For example: testuser1
       
  5. Select the Documents page.
     
  6. Create a folder.
     
    • Select: File -> New Folder
       
    • Provide a name for the folder.
      For example:
       
      Folder Name : Test
       
  7. Add a workflow to the folder.
     
    • Select the "Test" folder just created.
       
    • Select: View -> Details
       
    • Select: File -> Workflow Settings
       
    • Select a workflow.
      For example:
       
      Workflow Name: WebCenterPortalWCAllApprover
       
    • Click on "Add Approvers".
       
    • Add testuser1 as approver.
       
    • Click OK to apply the workflow settings.
       
       
  8. Add a file to the folder created in Step-7.
     
    • Click on "DocumentExchange1" in the breadcrumbs at the top.
       
    • Click on the "Test" folder.
       
    • Click "Upload".
       
    • Upload a file.
      For this exercise: File1.docx
       
    • Click "Upload".
      Now the file is within workflow.
       
       
  9. Reject the document.
     
    • Logout and login as testuser1.
       
    • Select "DocumentExchange1" from 'Portals' drop down list.
       
    • Select the Documents page.
       
    • Click on the "Test" folder.
       
    • Select the document (File1.docx in this case) and select: View -> Details.
       
    • Click on the "Reject" link.
       
    • Enter some text in the "Reject Reasson" field and click on the "Reject" button.
      Now the File1.docx file is rejected.
       
       
  10. Change access to portal.
     
    • Logout and login as the original user that created the space.
       
    • Select "DocumentExchange1" from 'Portals' drop down list.
       
    • Select "Manage" > "All Settings" from Action icon (the small wheel).
       
    • In the Portals settings, select "Security" from the left menu.
       
    • Under Access tab, change the "Access Level" to "Public".
      Note you don't get any errors/warnings indicating there are documents pending in the workflow.
       
       
  11. Click somewhere else in the settings dialog and then go back to the security tab.
    It should show "Public" access Level.

    However the at this time the Portal is in an inconsistent state with some services already transitioned to Public while some others still remaining in Private.
    So at this time administrators are not necessarily aware that something went wrong at all.
     
     
  12. Connect to the server where WebCenter Portal is installed and review the WC_Spaces-diagnostic.log.
    You will see the errors reported above.
     

     

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