input-output-hk / iodb

Multiversioned key-value database, especially useful for blockchain
Creative Commons Zero v1.0 Universal
95 stars 13 forks source link

NPE if test folder does not exist #15

Closed jankotek closed 7 years ago

jankotek commented 7 years ago

File.listFiles() returns null (instead of empty array) if directory does not exists. That causes following exception:

info] IODBSpecification:
[info] - writeKey test
Feb 06, 2017 12:29:05 PM io.iohk.iodb.LSMStore$$anon$1 run
SEVERE: Background task failed
java.lang.NullPointerException
at scala.collection.mutable.ArrayOps$ofRef$.newBuilder$extension(ArrayOps.scala:197)
at scala.collection.mutable.ArrayOps$ofRef.newBuilder(ArrayOps.scala:193)
at scala.collection.TraversableLike.filterImpl(TraversableLike.scala:246)
at scala.collection.TraversableLike.filterImpl$(TraversableLike.scala:245)
at scala.collection.mutable.ArrayOps$ofRef.filterImpl(ArrayOps.scala:193)
at scala.collection.TraversableLike.filter(TraversableLike.scala:259)
at scala.collection.TraversableLike.filter$(TraversableLike.scala:259)
at scala.collection.mutable.ArrayOps$ofRef.filter(ArrayOps.scala:193)
at io.iohk.iodb.LSMStore.shardListSortedFiles(LSMStore.scala:305)
at io.iohk.iodb.LSMStore.shardNewFileNum(LSMStore.scala:310)
at io.iohk.iodb.LSMStore.createEmptyShard(LSMStore.scala:331)
at io.iohk.iodb.LSMStore.$anonfun$taskShardMerge$1(LSMStore.scala:782)
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:156)
at io.iohk.iodb.LSMStore.taskShardMerge(LSMStore.scala:776)
at io.iohk.iodb.LSMStore.$anonfun$taskSharding$11(LSMStore.scala:732)
at io.iohk.iodb.LSMStore$$anon$1.run(LSMStore.scala:456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
jankotek commented 7 years ago

Fixed in 0.3 release.