You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2012/01/25 09:49:11 UTC
svn commit: r1235690 -
/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
Author: cziegeler
Date: Wed Jan 25 08:49:11 2012
New Revision: 1235690
URL: http://svn.apache.org/viewvc?rev=1235690&view=rev
Log:
SLING-2381 : Update detection might delete copied artifact
Modified:
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java?rev=1235690&r1=1235689&r2=1235690&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java Wed Jan 25 08:49:11 2012
@@ -271,31 +271,31 @@ public class EntityResourceList implemen
// If an object with same url is already present, replace with the
// new one which might have different attributes
boolean first = true;
+ boolean add = true;
final Iterator<TaskResource> taskIter = this.resources.iterator();
while ( taskIter.hasNext() ) {
final TaskResource rr = taskIter.next();
if ( rr.getURL().equals(r.getURL()) ) {
- boolean removeAndCleanup = true;
- if ( first ) {
- if ( RegisteredResourceImpl.isSameResource((RegisteredResourceImpl)rr, (RegisteredResourceImpl)r) ) {
- // same resource, just replace
- ((RegisteredResourceImpl)r).setState(rr.getState());
- } else if (rr.getState() == ResourceState.INSTALLED) {
+ if ( RegisteredResourceImpl.isSameResource((RegisteredResourceImpl)rr, (RegisteredResourceImpl)r) ) {
+ // same resource, just ignore the new one
+ add = false;
+ } else {
+ if ( first && rr.getState() == ResourceState.INSTALLED) {
// it's not the same, but the first one is installed, so uninstall
((RegisteredResourceImpl)rr).setState(ResourceState.UNINSTALL);
- removeAndCleanup = false;
+ } else {
+ LOGGER.debug("Cleanup obsolete resource: {}", rr);
+ taskIter.remove();
+ this.cleanup(rr);
}
}
- if ( removeAndCleanup ) {
- LOGGER.debug("Cleanup obsolete resource: {}", rr);
- taskIter.remove();
- this.cleanup(rr);
- }
break;
}
first = false;
}
- resources.add(r);
+ if ( add ) {
+ resources.add(r);
+ }
}
public void remove(final String url) {