You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2012/08/30 21:00:51 UTC
[2/3] git commit: Fix NPE when listing directory;
patch by yukim reviewed by jbellis for CASSANDRA-4572
Fix NPE when listing directory; patch by yukim reviewed by jbellis for
CASSANDRA-4572
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6e1f3a01
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6e1f3a01
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6e1f3a01
Branch: refs/heads/trunk
Commit: 6e1f3a0195b777c9ae79ab89230b67ca20c1adc4
Parents: b034297
Author: Yuki Morishita <yu...@apache.org>
Authored: Wed Aug 29 11:05:51 2012 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Thu Aug 30 13:54:56 2012 -0500
----------------------------------------------------------------------
src/java/org/apache/cassandra/db/Directories.java | 55 ++++++++++------
1 files changed, 36 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6e1f3a01/src/java/org/apache/cassandra/db/Directories.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Directories.java b/src/java/org/apache/cassandra/db/Directories.java
index 9c9f9b8..7ee2823 100644
--- a/src/java/org/apache/cassandra/db/Directories.java
+++ b/src/java/org/apache/cassandra/db/Directories.java
@@ -31,7 +31,6 @@ import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.*;
import org.apache.cassandra.db.compaction.LeveledManifest;
import org.apache.cassandra.io.util.FileUtils;
-import org.apache.cassandra.io.util.MmappedSegmentedFile;
import org.apache.cassandra.io.sstable.*;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.CLibrary;
@@ -479,16 +478,24 @@ public class Directories
if (!location.exists() || !location.isDirectory())
continue;
- for (File ksDir : location.listFiles())
+ File[] ksDirs = location.listFiles();
+ if (ksDirs != null)
{
- if (!ksDir.isDirectory())
- continue;
+ for (File ksDir : ksDirs)
+ {
+ if (!ksDir.isDirectory())
+ continue;
- for (File file : ksDir.listFiles())
- migrateFile(file, ksDir, null);
+ File[] files = ksDir.listFiles();
+ if (files != null)
+ {
+ for (File file : files)
+ migrateFile(file, ksDir, null);
+ }
- migrateSnapshots(ksDir);
- migrateBackups(ksDir);
+ migrateSnapshots(ksDir);
+ migrateBackups(ksDir);
+ }
}
}
}
@@ -499,16 +506,23 @@ public class Directories
if (!snapshotDir.exists())
return;
- for (File snapshot : snapshotDir.listFiles())
+ File[] snapshots = snapshotDir.listFiles();
+ if (snapshots != null)
{
- if (!snapshot.isDirectory())
- continue;
-
- for (File f : snapshot.listFiles())
- migrateFile(f, ksDir, join(SNAPSHOT_SUBDIR, snapshot.getName()));
+ for (File snapshot : snapshots)
+ {
+ if (!snapshot.isDirectory())
+ continue;
- if (!snapshot.delete())
- logger.info("Old snapsot directory {} not deleted by migraation as it is not empty", snapshot);
+ File[] files = snapshot.listFiles();
+ if (files != null)
+ {
+ for (File f : files)
+ migrateFile(f, ksDir, join(SNAPSHOT_SUBDIR, snapshot.getName()));
+ }
+ if (!snapshot.delete())
+ logger.info("Old snapsot directory {} not deleted by migraation as it is not empty", snapshot);
+ }
}
if (!snapshotDir.delete())
logger.info("Old directory {} not deleted by migration as it is not empty", snapshotDir);
@@ -520,9 +534,12 @@ public class Directories
if (!backupDir.exists())
return;
- for (File f : backupDir.listFiles())
- migrateFile(f, ksDir, BACKUPS_SUBDIR);
-
+ File[] files = backupDir.listFiles();
+ if (files != null)
+ {
+ for (File f : files)
+ migrateFile(f, ksDir, BACKUPS_SUBDIR);
+ }
if (!backupDir.delete())
logger.info("Old directory {} not deleted by migration as it is not empty", backupDir);
}