Using boot[1] on Windows we run into "could not delete file.." errors as described in #CLJ-1659.
File leak detector[2] suggests the culprit is cljs.util/last-modified:
1 descriptors are open
#1 C:\Users\ed\.boot\cache\tmp\Users\ed\projekte\sente-system\5ho\-c4hx1l\adzerk\boot_reload.cljs by thread:clojure-agent-send-off-pool-0 on Mon Aug 10 17:54:39 CEST 2015
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.initializeHeaders(FileURLConnection.java:110)
at sun.net.www.protocol.file.FileURLConnection.getLastModified(FileURLConnection.java:178)
at cljs.util$last_modified.invokeStatic(util.cljc:136)
at cljs.util$last_modified.invoke(util.cljc)
at cljs.analyzer$requires_analysis_QMARK_.invokeStatic(analyzer.cljc:2179)
at cljs.analyzer$requires_analysis_QMARK_.invoke(analyzer.cljc)
at cljs.analyzer$requires_analysis_QMARK_.invokeStatic(analyzer.cljc:2164)
at cljs.analyzer$requires_analysis_QMARK_.invoke(analyzer.cljc)
at cljs.analyzer$analyze_file.invokeStatic(analyzer.cljc:2220)
at cljs.analyzer$analyze_file.invoke(analyzer.cljc)
at cljs.analyzer$analyze_deps.invokeStatic(analyzer.cljc:1291)
at cljs.analyzer$analyze_deps.invoke(analyzer.cljc)
at cljs.analyzer$eval1868$fn__1870.invoke(analyzer.cljc:1545)
at clojure.lang.MultiFn.invoke(MultiFn.java:251)
at cljs.analyzer$analyze_seq.invokeStatic(analyzer.cljc:1900)
at cljs.analyzer$analyze_seq.invoke(analyzer.cljc)
at cljs.analyzer$analyze$fn__2118.invoke(analyzer.cljc:1992)
at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:1985)
at cljs.analyzer$analyze.invoke(analyzer.cljc)
at cljs.compiler$compile_file_STAR_$fn__3216.invoke(compiler.cljc:1027)
at cljs.compiler$with_core_cljs.invokeStatic(compiler.cljc:968)
at cljs.compiler$with_core_cljs.invoke(compiler.cljc)
at cljs.compiler$compile_file_STAR_.invokeStatic(compiler.cljc:988)
at cljs.compiler$compile_file_STAR_.invoke(compiler.cljc)
at cljs.compiler$compile_file$fn__3248.invoke(compiler.cljc:1129)
at cljs.compiler$compile_file.invokeStatic(compiler.cljc:1109)
at cljs.compiler$compile_file.invoke(compiler.cljc)
at cljs.compiler$compile_root.invokeStatic(compiler.cljc:1181)
at cljs.compiler$compile_root.invoke(compiler.cljc)
at cljs.closure$compile_dir.invokeStatic(closure.clj:385)
at cljs.closure$compile_dir.invoke(closure.clj)
at cljs.closure$eval3614$fn__3615.invoke(closure.clj:425)
at cljs.closure$eval3567$fn__3568$G__3558__3575.invoke(closure.clj:331)
at cljs.closure$eval3627$fn__3628.invoke(closure.clj:439)
at cljs.closure$eval3567$fn__3568$G__3558__3575.invoke(closure.clj:331)
at adzerk.boot_cljs.impl.CljsSourcePaths$fn__4011.invoke(impl.clj:14)
Using boot[1] on Windows we run into "could not delete file.." errors as described in #CLJ-1659.
File leak detector[2] suggests the culprit is cljs.util/last-modified:
1 descriptors are open #1 C:\Users\ed\.boot\cache\tmp\Users\ed\projekte\sente-system\5ho\-c4hx1l\adzerk\boot_reload.cljs by thread:clojure-agent-send-off-pool-0 on Mon Aug 10 17:54:39 CEST 2015 at java.io.FileInputStream.<init>(FileInputStream.java:139) at java.io.FileInputStream.<init>(FileInputStream.java:93) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90) at sun.net.www.protocol.file.FileURLConnection.initializeHeaders(FileURLConnection.java:110) at sun.net.www.protocol.file.FileURLConnection.getLastModified(FileURLConnection.java:178) at cljs.util$last_modified.invokeStatic(util.cljc:136) at cljs.util$last_modified.invoke(util.cljc) at cljs.analyzer$requires_analysis_QMARK_.invokeStatic(analyzer.cljc:2179) at cljs.analyzer$requires_analysis_QMARK_.invoke(analyzer.cljc) at cljs.analyzer$requires_analysis_QMARK_.invokeStatic(analyzer.cljc:2164) at cljs.analyzer$requires_analysis_QMARK_.invoke(analyzer.cljc) at cljs.analyzer$analyze_file.invokeStatic(analyzer.cljc:2220) at cljs.analyzer$analyze_file.invoke(analyzer.cljc) at cljs.analyzer$analyze_deps.invokeStatic(analyzer.cljc:1291) at cljs.analyzer$analyze_deps.invoke(analyzer.cljc) at cljs.analyzer$eval1868$fn__1870.invoke(analyzer.cljc:1545) at clojure.lang.MultiFn.invoke(MultiFn.java:251) at cljs.analyzer$analyze_seq.invokeStatic(analyzer.cljc:1900) at cljs.analyzer$analyze_seq.invoke(analyzer.cljc) at cljs.analyzer$analyze$fn__2118.invoke(analyzer.cljc:1992) at cljs.analyzer$analyze.invokeStatic(analyzer.cljc:1985) at cljs.analyzer$analyze.invoke(analyzer.cljc) at cljs.compiler$compile_file_STAR_$fn__3216.invoke(compiler.cljc:1027) at cljs.compiler$with_core_cljs.invokeStatic(compiler.cljc:968) at cljs.compiler$with_core_cljs.invoke(compiler.cljc) at cljs.compiler$compile_file_STAR_.invokeStatic(compiler.cljc:988) at cljs.compiler$compile_file_STAR_.invoke(compiler.cljc) at cljs.compiler$compile_file$fn__3248.invoke(compiler.cljc:1129) at cljs.compiler$compile_file.invokeStatic(compiler.cljc:1109) at cljs.compiler$compile_file.invoke(compiler.cljc) at cljs.compiler$compile_root.invokeStatic(compiler.cljc:1181) at cljs.compiler$compile_root.invoke(compiler.cljc) at cljs.closure$compile_dir.invokeStatic(closure.clj:385) at cljs.closure$compile_dir.invoke(closure.clj) at cljs.closure$eval3614$fn__3615.invoke(closure.clj:425) at cljs.closure$eval3567$fn__3568$G__3558__3575.invoke(closure.clj:331) at cljs.closure$eval3627$fn__3628.invoke(closure.clj:439) at cljs.closure$eval3567$fn__3568$G__3558__3575.invoke(closure.clj:331) at adzerk.boot_cljs.impl.CljsSourcePaths$fn__4011.invoke(impl.clj:14)
Example app that should reproduce the error: https://github.com/danielsz/sente-boot
clone, run boot dev, change a source file => file exists errors
[1] http://boot-clj.com/
[2] http://file-leak-detector.kohsuke.org/