protected function validateDirectories()
    {

        // query whether the container's application directory is available and readable
        $appBase = $this->getAppBase();
        if (!is_dir($appBase) || !is_readable($appBase)) {
            $this->getInitialContext()->getSystemLogger()->critical(
                sprintf(
                    'Base directory (appBase) %s of container %s is no directory or not readable, can\'t deploy applications',
                    $appBase,
                    $this->getName()
                )
            );
        }

        // query whether the container's temporary directory is available and readable
        $tmpDir = $this->getTmpDir();
        if (!is_dir($tmpDir) || !is_readable($tmpDir)) {
            $this->getInitialContext()->getSystemLogger()->critical(
                sprintf(
                    'Temporary directory (tmpDir) %s of container %s is no directory or not readable!',
                    $tmpDir,
                    $this->getName()
                )
            );
        }
    }