aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatei Zaharia <matei.zaharia@gmail.com>2013-09-09 20:16:19 -0700
committerMatei Zaharia <matei.zaharia@gmail.com>2013-09-09 20:16:19 -0700
commitc81377b9eda431f9298045d613d0e46301b08c63 (patch)
tree6bcd1d9996166234a103a24ce5121acea6e9281d
parent61d2a010e1b2d25616c378185606e6ba7c2b916b (diff)
parentfdb8b0eec3e423e601de8c79658c4644717f4e05 (diff)
downloadspark-c81377b9eda431f9298045d613d0e46301b08c63.tar.gz
spark-c81377b9eda431f9298045d613d0e46301b08c63.tar.bz2
spark-c81377b9eda431f9298045d613d0e46301b08c63.zip
Merge pull request #915 from ooyala/master
Get rid of / improve ugly NPE when Utils.deleteRecursively() fails
-rw-r--r--core/src/main/scala/org/apache/spark/util/Utils.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/src/main/scala/org/apache/spark/util/Utils.scala b/core/src/main/scala/org/apache/spark/util/Utils.scala
index b890be2f6f..886f071503 100644
--- a/core/src/main/scala/org/apache/spark/util/Utils.scala
+++ b/core/src/main/scala/org/apache/spark/util/Utils.scala
@@ -457,12 +457,20 @@ private[spark] object Utils extends Logging {
def newDaemonFixedThreadPool(nThreads: Int): ThreadPoolExecutor =
Executors.newFixedThreadPool(nThreads, daemonThreadFactory).asInstanceOf[ThreadPoolExecutor]
+ private def listFilesSafely(file: File): Seq[File] = {
+ val files = file.listFiles()
+ if (files == null) {
+ throw new IOException("Failed to list files for dir: " + file)
+ }
+ files
+ }
+
/**
* Delete a file or directory and its contents recursively.
*/
def deleteRecursively(file: File) {
if (file.isDirectory) {
- for (child <- file.listFiles()) {
+ for (child <- listFilesSafely(file)) {
deleteRecursively(child)
}
}