Cleanup (warnings)
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Wed, 28 Jan 2015 10:47:11 +0000 (13:47 +0300)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Wed, 28 Jan 2015 10:47:11 +0000 (13:47 +0300)
platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java

index 20e41ed39aad779753660f4b1511e2ca4208f71e..e4f54dd5c56d8322a105fe95fe5c9ad15719ef6e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.io.win32.FileInfo;
 import com.intellij.openapi.util.io.win32.IdeaWin32;
 import com.intellij.util.ArrayUtil;
 import com.intellij.util.SystemProperties;
+import com.intellij.util.containers.ContainerUtil;
 import com.sun.jna.Library;
 import com.sun.jna.Memory;
 import com.sun.jna.Native;
@@ -322,11 +323,10 @@ public class FileSystemUtil {
         Object sourcePath = myGetPath.invoke(myDefaultFileSystem, source, ArrayUtil.EMPTY_STRING_ARRAY);
         Object targetPath = myGetPath.invoke(myDefaultFileSystem, target, ArrayUtil.EMPTY_STRING_ARRAY);
         Collection sourcePermissions = getPermissions(sourcePath);
-        if (sourcePermissions != null) {
-          Collection permissionsToSet;
+        Collection targetPermissions = getPermissions(targetPath);
+        if (sourcePermissions != null && targetPermissions != null) {
           if (onlyPermissionsToExecute) {
-            Collection targetPermissions = getPermissions(targetPath);
-            permissionsToSet = new HashSet();
+            Collection<Object> permissionsToSet = ContainerUtil.newHashSet();
             for (Object permission : targetPermissions) {
               if (!permission.toString().endsWith("_EXECUTE")) {
                 permissionsToSet.add(permission);
@@ -337,11 +337,11 @@ public class FileSystemUtil {
                 permissionsToSet.add(permission);
               }
             }
+            mySetAttribute.invoke(null, targetPath, "posix:permissions", permissionsToSet, myLinkOptions);
           }
           else {
-            permissionsToSet = sourcePermissions;
+            mySetAttribute.invoke(null, targetPath, "posix:permissions", sourcePermissions, myLinkOptions);
           }
-          mySetAttribute.invoke(null, targetPath, "posix:permissions", permissionsToSet, myLinkOptions);
           return true;
         }
       }
@@ -353,7 +353,7 @@ public class FileSystemUtil {
       Map attributes = (Map)myReadAttributes.invoke(null, sourcePath, "posix:permissions", myLinkOptions);
       if (attributes == null) return null;
       Object permissions = attributes.get("permissions");
-      return permissions instanceof Collection<?> ? (Collection)permissions : null;
+      return permissions instanceof Collection ? (Collection)permissions : null;
     }
   }