Ticket #2363: switch-revision-notifications.patch

File switch-revision-notifications.patch, 2.5 KB (added by mira, 15 years ago)
  • src/main/java/org/sophie2/base/model/resources/r4/access/MasterTopAccess.java

    ### Eclipse Workspace Patch 1.0
    #P org.sophie2.base.model.resources.r4
     
    188188                // TODO some checks for valid change, Security. 
    189189                ResourceRevision newRevision = getHead().applyChange(change, revisionId); 
    190190                if (!newRevision.equals(this.headRevision)) { 
    191                         switchToNextRevision(newRevision);  
     191                        switchToRevision(newRevision);  
    192192                } 
    193193        } 
    194194 
     
    197197         *  
    198198         * @param newRevision The revision to switch to. 
    199199         */ 
    200         protected void switchToNextRevision(ResourceRevision newRevision) { 
     200        protected void switchToRevision(ResourceRevision newRevision) { 
    201201                assert newRevision != null; 
    202                 assert this.headRevision.getId().compareTo(newRevision.getId()) < 0 :  
    203                         "Cannot swith from rev " + this.headRevision.getId() +  
    204                         " to " + newRevision.getId() + "!"; 
    205  
    206                 ResourceRevision oldRevision = this.headRevision; 
     202                if (this.headRevision.getId().equals(newRevision.getId())) { 
     203                        return; 
     204                } 
     205                ResourceRevision oldRevision = null; 
     206                ResourceRevision revision = null; 
     207                if( this.headRevision.getId().compareTo(newRevision.getId()) < 0) { 
     208                        oldRevision = this.headRevision; 
     209                        revision = newRevision; 
     210                } else { 
     211                        oldRevision = newRevision; 
     212                        revision = this.headRevision; 
     213                } 
    207214 
    208215                this.headRevision = newRevision; 
    209216                this.headAspect.fireChanged(null); 
    210217 
    211                 ResourceRevision revision = newRevision; 
    212218                while (oldRevision.getId().compareTo(revision.getId()) < 0) { 
    213219                        ChangeEffect effect = revision.getChangeEffect(); 
    214220 
  • src/main/java/org/sophie2/base/connectivity/resources/MasterServerAccess.java

    #P org.sophie2.base.connectivity
     
    155155                        newRevision = newRevision.applyChange(change, revisionId); 
    156156                } 
    157157                 
    158                 this.headRevision = revision; // TODO see how to notify properties 
    159                 switchToNextRevision(newRevision);  
     158                switchToRevision(revision); 
     159                switchToRevision(newRevision);  
    160160                this.syncInfo = this.syncInfo.setLastSyncRevision(newRevision.getId()); 
    161161        } 
    162162