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);