Создание каталога и невозможность доступа к нему - Scala Play Framework - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь развернуть код, написанный на Play Framework для Scala. Я запускаю sbt testProd или sbt dist, а затем запускаю .sh, сгенерированный в папке bin. В обоих случаях в коде есть точка, где создается папка с именем floor_plans. Однако сразу после создания папки выполняется проверка, чтобы проверить, является ли папка каталогом и возвращает ли она ложь, что очень странно, потому что я вижу, что папка была создана и имеет соответствующие разрешения.

Вот пример кода:

val dir = new File("floor_plan/building/fl0")

dir.mkdirs()

// I've checked in the terminal and I can see that the directory is 
// created with success and it has rwx permission for the owner, the 
// group, and rx for others.

if (!dir.isDirectory || !dir.canWrite() || !dir.canExecute()) {

      // Although the folder is created and has the proper permission,
      // the codes enter in this if, i.e.  dir.isDirectory is false and 
      // so  canWrite and canExecute

      Logger.debug("Floor plans directory is inaccessible!!")

      throw new AnyPlaceException("Floor plans directory is 
       inaccessible!!!")
    }

-

Я запустил несколько тестов и обнаружил, что при создании простого каталога без подкаталога эта проблема не возникает. Я думаю, что проблема с подкаталогами.

val dir = new File("floor_plan/building/fl0")

dir.mkdirs() // this returns true, and I checked that all subdirectories as created with success

dir.isDirectory // this returns false only is there is a subdirectory. If I create a directory with no subdirectory, e.g. new File("floor_plan"), the return is true

Странно то, что когда я запускаю это на Intellij, оно работает нормально. Но когда я запускаю в командной строке sbt testProd, dir.isDirectory каждый раз возвращает false.

Я думал, что mybe Intelij использует другую версию jvm, но, похоже, это не так.

Было бы неплохо узнать, почему это происходит и почему оно работает на IntelliJ, а на терминале - нет.

...