You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/03/15 14:35:14 UTC

[05/16] ignite git commit: Removed listing from IgfsMetaManager.delete() method.

Removed listing from IgfsMetaManager.delete() method.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8af4f482
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8af4f482
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8af4f482

Branch: refs/heads/ignite-2813
Commit: 8af4f482a5af173c08cebe40e2165f8944f22cc0
Parents: b47eef6
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Tue Mar 15 15:33:37 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Mar 15 15:33:37 2016 +0300

----------------------------------------------------------------------
 .../internal/processors/igfs/IgfsFileInfo.java       |  7 +++++++
 .../internal/processors/igfs/IgfsMetaManager.java    | 15 ++++++++-------
 2 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8af4f482/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
index 09c529f..1f41d91 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFileInfo.java
@@ -438,6 +438,13 @@ public final class IgfsFileInfo implements Externalizable {
     }
 
     /**
+     * @return {@code True} if at least one child exists.
+     */
+    public boolean hasChildren() {
+        return !F.isEmpty(listing2);
+    }
+
+    /**
      * @return Affinity key used for single-node file collocation. If {@code null}, usual
      *      mapper procedure is used for block affinity detection.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/8af4f482/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
index 1fd426c..b695e41 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsMetaManager.java
@@ -1347,10 +1347,11 @@ public class IgfsMetaManager extends IgfsManager {
 
                     // Ensure parent is still in place.
                     if (parentInfo != null) {
-                        Map<String, IgfsListingEntry> newListing =
-                            new HashMap<>(parentInfo.listing().size(), 1.0f);
+                        Map<String, IgfsListingEntry> parentListing = parentInfo.listing();
 
-                        newListing.putAll(parentInfo.listing());
+                        Map<String, IgfsListingEntry> newListing = new HashMap<>(parentListing.size(), 1.0f);
+
+                        newListing.putAll(parentListing);
 
                         // Remove child entries if possible.
                         for (Map.Entry<String, IgniteUuid> entry : listing.entrySet()) {
@@ -1364,7 +1365,7 @@ public class IgfsMetaManager extends IgfsManager {
                                 assert entryInfo.isDirectory() || IgfsUtils.DELETE_LOCK_ID.equals(entryInfo.lockId());
 
                                 // Delete only files or empty folders.
-                                if (entryInfo.isFile() || entryInfo.isDirectory() && entryInfo.listing().isEmpty()) {
+                                if (!entryInfo.hasChildren()) {
                                     id2InfoPrj.getAndRemove(childId);
 
                                     newListing.remove(childName);
@@ -1437,10 +1438,10 @@ public class IgfsMetaManager extends IgfsManager {
 
                         assert parentInfo != null;
 
-                        IgfsListingEntry listingEntry = parentInfo.listing().get(name);
+                        IgniteUuid childId = parentInfo.listing2().get(name);
 
-                        if (listingEntry != null)
-                            id2InfoPrj.invoke(parentId, new ListingRemove(name, listingEntry.fileId()));
+                        if (childId != null)
+                            id2InfoPrj.invoke(parentId, new ListingRemove(name, childId));
 
                         IgfsFileInfo deleted = id2InfoPrj.getAndRemove(id);