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