Ticket #2250: revert_last_unsign_changes.patch

File revert_last_unsign_changes.patch, 2.0 KB (added by mira, 15 years ago)

change-set

  • src/main/java/org/sophie2/base/model/resources/r4/changes/MetaChange.java

    ### Eclipse Workspace Patch 1.0
    #P org.sophie2.base.model.resources.r4
     
    272272                                || (access.getHead().getPrevRevision() == null)) { 
    273273                        return null; 
    274274                } 
    275  
     275                String viewId = access.getAccessOptions().getViewId(); 
     276                ResourceRevision currentRev = access.getHead(); 
     277                Change lastChange = currentRev.getLastChange(); 
     278         
     279                while (!lastChange.getViewId().equals(viewId)) { 
     280                        currentRev = currentRev.getPrevRevision(); 
     281                        lastChange = currentRev.getLastChange(); 
     282                        if (lastChange == null) { 
     283                                return null; 
     284                        } 
     285                } 
     286                if (!lastChange.isSignificant()) { 
     287                        return currentRev; 
     288                } 
     289                 
    276290                List<RevisionId> skippedChanges = new ArrayList<RevisionId>(); 
    277                 ResourceRevision currentRev = access.getHead(); 
    278291                while (currentRev.getLastChange() != null) { 
    279                         if (((currentRev.getLastChange().getViewId().equals( 
    280                                         access.getAccessOptions().getViewId())  
     292                        if (((lastChange.getViewId().equals(viewId)  
    281293                                        && !skippedChanges.contains(currentRev.getId())))  
    282                                         && !isUndo(currentRev.getLastChange()) 
    283                                         && (currentRev.getLastChange().isSignificant())) { 
     294                                        && !isUndo(lastChange) 
     295                                        && (lastChange.isSignificant())) { 
    284296                                return currentRev; 
    285297                        } 
    286298 
    287                         if (currentRev.getLastChange() instanceof MetaChange  
     299                        if (lastChange instanceof MetaChange  
    288300                                        && !skippedChanges.contains(currentRev.getId())) { 
    289                                 MetaChange metaChange = (MetaChange) currentRev.getLastChange(); 
     301                                MetaChange metaChange = (MetaChange) lastChange; 
    290302                                skippedChanges.addAll(metaChange.getRevisionsToSkip().asList()); 
    291303                        } 
    292304                        currentRev = currentRev.getPrevRevision(); 
     305                        lastChange = currentRev.getLastChange(); 
    293306                } 
    294307                return null; 
    295308        }