Skip to content

Missing migrations directory throws unhelpful NPE #41

@jpolchlo

Description

@jpolchlo

While working on another project, I ended up spending a long time chasing down a NullPointerException inside Drift. I found the culprit being that the configured migrations directory (as indicated by the :directory key in the config map) was missing. As a new user, the NPE was unhelpful, since I had inherited my code, which I had presumed ran correctly in the past. The NPE didn't provide useful breadcrumbs.

The location in question in Drift that raised the unhelpful NPE is here:

drift/src/drift/core.clj

Lines 114 to 119 in 1acfe11

(defn default-migration-namespaces []
(->> (find-migrate-directory)
.listFiles
(map #(.getName ^File %))
(filter #(re-matches #".*\.clj$" %))
(map namespace-string-for-file)))

I'd imagine that a null check that throws a useful missing directory error might help someone else in the future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions