Uploaded image for project: 'Guvnor'
  1. Guvnor
  2. GUVNOR-2017

Saving multiple assets in a single tab from BRM (Guvnor) throws "binaryUpToDate has been modified externally"

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Out of Date
    • Affects Version/s: drools-5.3.0.Final
    • Fix Version/s: Previous work
    • Component/s: None
    • Labels:
    • Environment:

      JBoss Enterprise BRMS Platform 5.3.1

    • Steps to Reproduce:
      • Open multiple assets in a single tab
      • Save the assets in the editor by clicking "save all"
    • Workaround:
      Workaround Exists
    • Workaround Description:
      • Try opening each asset individually and make changes.
    • Estimated Difficulty:
      Medium
    • Bugzilla Update:
      Perform

      Description

      • If we try to save multiple rules opened in a single tab through BRM (i.e. Guvnor) it throws the error "binaryUpToDate has been modified externally" . As per the experts the saving of each asset will try to set the 'binaryUpToDate' attribute on the package item in which these assets belong to. This is the reason why we get "binaryUpToDate has been modified externally" for the second or all the following asset saving operations.

      ~~~
      ERROR [RepositoryServiceServlet] Service method 'public abstract java.lang.String org.drools.guvnor.client.rpc.AssetService.checkinVersion(org.drools.guvnor.client.rpc.RuleAsset) throws com.google.gwt.user.client.rpc.SerializationException' threw an unexpected exception: org.drools.repository.RulesRepositoryException: Unable to checkin.
      org.drools.repository.RulesRepositoryException: Unable to checkin.
      at org.drools.repository.VersionableItem.checkin(VersionableItem.java:591)
      at org.drools.guvnor.server.RepositoryAssetOperations.checkinVersion(RepositoryAssetOperations.java:141)
      at org.drools.guvnor.server.RepositoryAssetService.checkinVersion(RepositoryAssetService.java:153)
      ...
      Caused by: javax.jcr.InvalidItemStateException: Unable to update a stale item: item.save()
      at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:262)
      at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
      at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91)
      at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329)
      ...
      Caused by: org.apache.jackrabbit.core.state.StaleItemStateException: da98caef-e1c4-4f98-880c-46a740c9131f/

      {http://www.jboss.org/drools-repository/1.0}

      binaryUpToDate has been modified externally
      at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:663)
      at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1458)
      at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1488)
      ...
      ~~~

      • After this strangely, we can still see the assets are getting properly updated in BRM (i.e. Guvnor).

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                mhussain Musharraf Hussain
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: