### Eclipse Workspace Patch 1.0
#P org.sophie2.base.model.resources.r4
|
|
|
272 | 272 | || (access.getHead().getPrevRevision() == null)) { |
273 | 273 | return null; |
274 | 274 | } |
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 | |
276 | 290 | List<RevisionId> skippedChanges = new ArrayList<RevisionId>(); |
277 | | ResourceRevision currentRev = access.getHead(); |
278 | 291 | while (currentRev.getLastChange() != null) { |
279 | | if (((currentRev.getLastChange().getViewId().equals( |
280 | | access.getAccessOptions().getViewId()) |
| 292 | if (((lastChange.getViewId().equals(viewId) |
281 | 293 | && !skippedChanges.contains(currentRev.getId()))) |
282 | | && !isUndo(currentRev.getLastChange()) |
283 | | && (currentRev.getLastChange().isSignificant())) { |
| 294 | && !isUndo(lastChange) |
| 295 | && (lastChange.isSignificant())) { |
284 | 296 | return currentRev; |
285 | 297 | } |
286 | 298 | |
287 | | if (currentRev.getLastChange() instanceof MetaChange |
| 299 | if (lastChange instanceof MetaChange |
288 | 300 | && !skippedChanges.contains(currentRev.getId())) { |
289 | | MetaChange metaChange = (MetaChange) currentRev.getLastChange(); |
| 301 | MetaChange metaChange = (MetaChange) lastChange; |
290 | 302 | skippedChanges.addAll(metaChange.getRevisionsToSkip().asList()); |
291 | 303 | } |
292 | 304 | currentRev = currentRev.getPrevRevision(); |
| 305 | lastChange = currentRev.getLastChange(); |
293 | 306 | } |
294 | 307 | return null; |
295 | 308 | } |