Author: kwin
Date: Fri Aug  4 09:47:32 2017
New Revision: 1804086

URL: http://svn.apache.org/viewvc?rev=1804086&view=rev
Log:
SLING-6190 only try to modify natures in case something new was really added

Modified:
    
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java

Modified: 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java?rev=1804086&r1=1804085&r2=1804086&view=diff
==============================================================================
--- 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
 (original)
+++ 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/m2e/internal/ContentPackageProjectConfigurator.java
 Fri Aug  4 09:47:32 2017
@@ -122,17 +122,22 @@ public class ContentPackageProjectConfig
         String[] oldNatureIds = description.getNatureIds();
         Set<String> newNatureIdSet = new TreeSet<String>();
         newNatureIdSet.addAll(Arrays.asList(oldNatureIds));
-        newNatureIdSet.addAll(Arrays.asList(natureIdsToAdd));
-        String[] newNatureIds = newNatureIdSet.toArray(new 
String[newNatureIdSet.size()]);
-        IStatus status = 
project.getWorkspace().validateNatureSet(newNatureIds);
-        // check the status and decide what to do
-        if (status.getCode() == IStatus.OK) {
-            description.setNatureIds(newNatureIds);
-            project.setDescription(description, IResource.KEEP_HISTORY, 
progressMonitor);
+        // check if there is a nature change really requested
+        if (newNatureIdSet.addAll(Arrays.asList(natureIdsToAdd))) {
+            String[] newNatureIds = newNatureIdSet.toArray(new 
String[newNatureIdSet.size()]);
+            IStatus status = 
project.getWorkspace().validateNatureSet(newNatureIds);
+            // check the status and decide what to do
+            if (status.getCode() == IStatus.OK) {
+                trace("Modifiying natures of project {1} to {0}", 
Arrays.toString(newNatureIds), project);
+                description.setNatureIds(newNatureIds);
+                project.setDescription(description, IResource.KEEP_HISTORY, 
progressMonitor);
+            } else {
+                StatusManager.getManager().handle(status, 
StatusManager.LOG|StatusManager.SHOW);
+                // add marker
+                addMarker(pomResource, "Could not add all necessary WTP 
natures: " + status.getMessage(), IMarker.SEVERITY_ERROR);
+            }
         } else {
-            StatusManager.getManager().handle(status, 
StatusManager.LOG|StatusManager.SHOW);
-            // add marker
-            addMarker(pomResource, "Could not add all necessary WTP natures: " 
+ status.getMessage(), IMarker.SEVERITY_ERROR);
+            trace("Not modifiying natures of project {1} as required natures 
{0} are already set ", Arrays.toString(natureIdsToAdd), project);
         }
     }
 


Reply via email to