Skip to content

Instantly share code, notes, and snippets.

@guns
Last active August 29, 2015 14:01
Show Gist options
  • Save guns/bc722e7ffd9ad1ee92ee to your computer and use it in GitHub Desktop.
Save guns/bc722e7ffd9ad1ee92ee to your computer and use it in GitHub Desktop.
Closing resources
(ns example
(:require [clojure.java.io :as io])
(:import (java.io FileInputStream)
(javax.mail Session)
(javax.mail.internet MimeMessage)))
;; Good
(defn ^MimeMessage message
[file]
(with-open [fis (FileInputStream. (io/file file))]
(MimeMessage. (Session/getDefaultInstance (System/getProperties)) fis)))
;; Bad
(defn ^MimeMessage message
[file]
(MimeMessage. (Session/getDefaultInstance (System/getProperties))
(FileInputStream. (io/file file))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment